diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..09cfd4ad --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +# Private key for Injective example scripts (hex-encoded, 64 chars). +# Copy this file to .env and fill in your key, or export the variable in your shell. +INJECTIVE_PRIVATE_KEY= diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 5dfa3e3c..d167c44f 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -22,7 +22,7 @@ jobs: uses: golangci/golangci-lint-action@v8 with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: v2.1.6 + version: v2.11.4 # Optional: working directory, useful for monorepos # working-directory: somedir diff --git a/.gitignore b/.gitignore index a7a58718..dc24d8bb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ .chain_cookie .exchange_cookie coverage.out +.env diff --git a/Makefile b/Makefile index 49ef29b8..8cfc1d29 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ all: clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.18.3 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.19.0 --depth 1 --single-branch clone-injective-core: - git clone https://github.com/InjectiveLabs/injective-core.git -b v1.18.0 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-core.git -b v1.19.0 --depth 1 --single-branch copy-exchange-client: clone-injective-indexer rm -rf exchange/* @@ -51,6 +51,8 @@ copy-chain-types: clone-injective-core mkdir -p chain/auction/types && \ cp injective-core/injective-chain/modules/auction/types/*.pb.go chain/auction/types && \ cp injective-core/injective-chain/modules/auction/types/codec.go chain/auction/types + mkdir -p chain/common/vouchers/types && \ + cp injective-core/injective-chain/modules/common/vouchers/types/*.pb.go chain/common/vouchers/types mkdir -p chain/downtime-detector/types && \ cp injective-core/injective-chain/modules/downtime-detector/types/*.pb.go chain/downtime-detector/types && \ cp injective-core/injective-chain/modules/downtime-detector/types/codec.go chain/downtime-detector/types && \ @@ -88,22 +90,16 @@ copy-chain-types: clone-injective-core mkdir -p chain/insurance/types && \ cp injective-core/injective-chain/modules/insurance/types/*.pb.go chain/insurance/types && \ cp injective-core/injective-chain/modules/insurance/types/codec.go chain/insurance/types - mkdir -p chain/ocr/types && \ - cp injective-core/injective-chain/modules/ocr/types/*.pb.go chain/ocr/types && \ - cp injective-core/injective-chain/modules/ocr/types/errors.go chain/ocr/types && \ - cp injective-core/injective-chain/modules/ocr/types/key.go chain/ocr/types && \ - cp injective-core/injective-chain/modules/ocr/types/params.go chain/ocr/types && \ - cp injective-core/injective-chain/modules/ocr/types/proposal.go chain/ocr/types && \ - cp injective-core/injective-chain/modules/ocr/types/types.go chain/ocr/types && \ - cp injective-core/injective-chain/modules/ocr/types/codec.go chain/ocr/types mkdir -p chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/*.pb.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/chainlink_data_streams.go chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/codec.go chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/errors.go chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/msgs.go chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/oracle.go chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/params.go chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/proposal.go chain/oracle/types && \ + cp injective-core/injective-chain/modules/oracle/types/pyth.go chain/oracle/types && \ cp injective-core/injective-chain/modules/oracle/types/stork_oracle.go chain/oracle/types mkdir -p chain/peggy/types && \ cp injective-core/injective-chain/modules/peggy/types/*.pb.go chain/peggy/types && \ diff --git a/chain/auction/types/auction.pb.go b/chain/auction/types/auction.pb.go index d1c4a10c..e270cfbb 100644 --- a/chain/auction/types/auction.pb.go +++ b/chain/auction/types/auction.pb.go @@ -6,6 +6,7 @@ package types import ( cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" + _ "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" @@ -27,6 +28,53 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type EventSetVoucher struct { + // The bech32 address of the voucher holder. + Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + // The new voucher amount. A zero coin signals voucher deletion. + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher"` +} + +func (m *EventSetVoucher) Reset() { *m = EventSetVoucher{} } +func (m *EventSetVoucher) String() string { return proto.CompactTextString(m) } +func (*EventSetVoucher) ProtoMessage() {} +func (*EventSetVoucher) Descriptor() ([]byte, []int) { + return fileDescriptor_49edfee5f1ef4b5a, []int{0} +} +func (m *EventSetVoucher) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventSetVoucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventSetVoucher.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventSetVoucher) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSetVoucher.Merge(m, src) +} +func (m *EventSetVoucher) XXX_Size() int { + return m.Size() +} +func (m *EventSetVoucher) XXX_DiscardUnknown() { + xxx_messageInfo_EventSetVoucher.DiscardUnknown(m) +} + +var xxx_messageInfo_EventSetVoucher proto.InternalMessageInfo + +func (m *EventSetVoucher) GetAddr() string { + if m != nil { + return m.Addr + } + return "" +} + type Params struct { // auction_period_duration defines the auction period duration AuctionPeriod int64 `protobuf:"varint,1,opt,name=auction_period,json=auctionPeriod,proto3" json:"auction_period,omitempty"` @@ -45,7 +93,7 @@ func (m *Params) Reset() { *m = Params{} } func (m *Params) String() string { return proto.CompactTextString(m) } func (*Params) ProtoMessage() {} func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_49edfee5f1ef4b5a, []int{0} + return fileDescriptor_49edfee5f1ef4b5a, []int{1} } func (m *Params) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -97,7 +145,7 @@ func (m *Bid) Reset() { *m = Bid{} } func (m *Bid) String() string { return proto.CompactTextString(m) } func (*Bid) ProtoMessage() {} func (*Bid) Descriptor() ([]byte, []int) { - return fileDescriptor_49edfee5f1ef4b5a, []int{1} + return fileDescriptor_49edfee5f1ef4b5a, []int{2} } func (m *Bid) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -146,7 +194,7 @@ func (m *LastAuctionResult) Reset() { *m = LastAuctionResult{} } func (m *LastAuctionResult) String() string { return proto.CompactTextString(m) } func (*LastAuctionResult) ProtoMessage() {} func (*LastAuctionResult) Descriptor() ([]byte, []int) { - return fileDescriptor_49edfee5f1ef4b5a, []int{2} + return fileDescriptor_49edfee5f1ef4b5a, []int{3} } func (m *LastAuctionResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -202,7 +250,7 @@ func (m *EventBid) Reset() { *m = EventBid{} } func (m *EventBid) String() string { return proto.CompactTextString(m) } func (*EventBid) ProtoMessage() {} func (*EventBid) Descriptor() ([]byte, []int) { - return fileDescriptor_49edfee5f1ef4b5a, []int{3} + return fileDescriptor_49edfee5f1ef4b5a, []int{4} } func (m *EventBid) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -258,7 +306,7 @@ func (m *EventAuctionResult) Reset() { *m = EventAuctionResult{} } func (m *EventAuctionResult) String() string { return proto.CompactTextString(m) } func (*EventAuctionResult) ProtoMessage() {} func (*EventAuctionResult) Descriptor() ([]byte, []int) { - return fileDescriptor_49edfee5f1ef4b5a, []int{4} + return fileDescriptor_49edfee5f1ef4b5a, []int{5} } func (m *EventAuctionResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -315,7 +363,7 @@ func (m *EventAuctionStart) Reset() { *m = EventAuctionStart{} } func (m *EventAuctionStart) String() string { return proto.CompactTextString(m) } func (*EventAuctionStart) ProtoMessage() {} func (*EventAuctionStart) Descriptor() ([]byte, []int) { - return fileDescriptor_49edfee5f1ef4b5a, []int{5} + return fileDescriptor_49edfee5f1ef4b5a, []int{6} } func (m *EventAuctionStart) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -366,6 +414,7 @@ func (m *EventAuctionStart) GetNewBasket() github_com_cosmos_cosmos_sdk_types.Co } func init() { + proto.RegisterType((*EventSetVoucher)(nil), "injective.auction.v1beta1.EventSetVoucher") proto.RegisterType((*Params)(nil), "injective.auction.v1beta1.Params") proto.RegisterType((*Bid)(nil), "injective.auction.v1beta1.Bid") proto.RegisterType((*LastAuctionResult)(nil), "injective.auction.v1beta1.LastAuctionResult") @@ -379,47 +428,50 @@ func init() { } var fileDescriptor_49edfee5f1ef4b5a = []byte{ - // 632 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0x41, 0x6b, 0x13, 0x41, - 0x14, 0xce, 0x34, 0x35, 0x98, 0x91, 0xda, 0x66, 0xa8, 0x36, 0x6d, 0x71, 0x13, 0x22, 0xd2, 0xa8, - 0x74, 0xd7, 0xda, 0x5b, 0x6f, 0x6e, 0xf5, 0x50, 0x69, 0xa5, 0xac, 0x82, 0xe0, 0x65, 0x99, 0xdd, - 0x7d, 0x24, 0x93, 0x66, 0x66, 0xc2, 0xce, 0xa4, 0x49, 0xff, 0x82, 0x27, 0x7f, 0x80, 0x88, 0x07, - 0xf5, 0xe0, 0xc9, 0x9f, 0xe0, 0xb1, 0xc7, 0x1e, 0xc5, 0x43, 0x94, 0xf6, 0xa0, 0x78, 0xf4, 0x17, - 0x48, 0x66, 0x67, 0x43, 0x40, 0x14, 0x4f, 0xc5, 0x4b, 0xb2, 0xef, 0x9b, 0xf7, 0xbe, 0xf9, 0xde, - 0xf7, 0x98, 0x87, 0xd7, 0x98, 0xe8, 0x40, 0xac, 0xd9, 0x21, 0x78, 0xb4, 0x1f, 0x6b, 0x26, 0x85, - 0x77, 0xb8, 0x11, 0x81, 0xa6, 0x1b, 0x79, 0xec, 0xf6, 0x52, 0xa9, 0x25, 0x59, 0x9e, 0x24, 0xba, - 0xf9, 0x81, 0x4d, 0x5c, 0x59, 0x6c, 0xc9, 0x96, 0x34, 0x59, 0xde, 0xf8, 0x2b, 0x2b, 0x58, 0x71, - 0x62, 0xa9, 0xb8, 0x54, 0x5e, 0x44, 0x15, 0x4c, 0x38, 0x63, 0xc9, 0x2c, 0xe1, 0x4a, 0x85, 0x72, - 0x26, 0xa4, 0x67, 0x7e, 0x33, 0xa8, 0xf1, 0x66, 0x06, 0x97, 0xf6, 0x69, 0x4a, 0xb9, 0x22, 0x37, - 0xf0, 0x65, 0x7b, 0x4d, 0xd8, 0x83, 0x94, 0xc9, 0xa4, 0x8a, 0xea, 0xa8, 0x59, 0x0c, 0xe6, 0x2c, - 0xba, 0x6f, 0x40, 0x42, 0xf1, 0x2a, 0x67, 0x22, 0x14, 0x30, 0xd4, 0x61, 0xc4, 0x92, 0x90, 0x89, - 0x38, 0x05, 0x0e, 0x42, 0x87, 0x29, 0xd5, 0x50, 0x9d, 0xa9, 0xa3, 0x66, 0xd9, 0xbf, 0x7e, 0x3c, - 0xaa, 0x15, 0x3e, 0x8f, 0x6a, 0xab, 0x99, 0x22, 0x95, 0x1c, 0xb8, 0x4c, 0x7a, 0x9c, 0xea, 0xb6, - 0xbb, 0x0b, 0x2d, 0x1a, 0x1f, 0xdd, 0x87, 0x38, 0x58, 0xe2, 0x4c, 0x3c, 0x82, 0xa1, 0xf6, 0x59, - 0xb2, 0x93, 0x93, 0x04, 0x54, 0x03, 0x79, 0x88, 0x09, 0x13, 0x9d, 0x30, 0xa2, 0xea, 0x00, 0x74, - 0xc8, 0xe9, 0x30, 0x8c, 0x69, 0xaf, 0x5a, 0x34, 0xcc, 0xd7, 0x2c, 0xf3, 0x95, 0xdf, 0x99, 0x77, - 0x84, 0x0e, 0xe6, 0x99, 0xe8, 0xf8, 0xa6, 0x6e, 0x8f, 0x0e, 0xb7, 0x69, 0x8f, 0xdc, 0xc6, 0x95, - 0x88, 0x25, 0x09, 0xa4, 0x2a, 0x1c, 0xb4, 0x99, 0x86, 0x2e, 0x53, 0xba, 0x3a, 0x5b, 0x2f, 0x36, - 0xcb, 0xc1, 0x82, 0x3d, 0x78, 0x9a, 0xe3, 0x5b, 0x4b, 0xdf, 0x5f, 0xd7, 0xd0, 0xf3, 0x6f, 0x1f, - 0x6e, 0xe5, 0x4e, 0x78, 0x99, 0x37, 0x8d, 0x57, 0x08, 0x17, 0x7d, 0x96, 0x90, 0x4d, 0x5c, 0xca, - 0x8a, 0x8c, 0x37, 0x65, 0x7f, 0xf5, 0xc7, 0xa8, 0x66, 0x91, 0x9f, 0xa3, 0xda, 0xdc, 0x11, 0xe5, - 0xdd, 0xad, 0x46, 0x16, 0x37, 0x02, 0x7b, 0x40, 0x22, 0x5c, 0xa2, 0x5c, 0xf6, 0x85, 0x36, 0xe6, - 0x5c, 0xba, 0xbb, 0xec, 0x66, 0xda, 0xdd, 0xf1, 0x9c, 0xf2, 0x91, 0xba, 0xdb, 0x92, 0x09, 0xdf, - 0xb3, 0xdd, 0xad, 0xb5, 0x98, 0x6e, 0xf7, 0x23, 0x37, 0x96, 0xdc, 0xb3, 0x43, 0xcd, 0xfe, 0xd6, - 0x55, 0x72, 0xe0, 0xe9, 0xa3, 0x1e, 0x28, 0x53, 0x10, 0x58, 0xe6, 0xc6, 0x5b, 0x84, 0x2b, 0xbb, - 0x54, 0xe9, 0x7b, 0x99, 0xee, 0x00, 0x54, 0xbf, 0xab, 0xc9, 0x55, 0x5c, 0x1a, 0x30, 0x21, 0x72, - 0xb9, 0x81, 0x8d, 0xce, 0x43, 0x11, 0x59, 0xc4, 0x17, 0x52, 0xd9, 0x17, 0x89, 0x99, 0xdb, 0x6c, - 0x90, 0x05, 0x8d, 0x97, 0x08, 0x5f, 0x7c, 0x70, 0x08, 0x62, 0x3c, 0xf4, 0xb1, 0xbc, 0x69, 0x37, - 0xcf, 0xd3, 0xb0, 0x3f, 0xc8, 0x7b, 0x87, 0x30, 0x31, 0xf2, 0xfe, 0x77, 0x1f, 0x3f, 0x22, 0x5c, - 0x99, 0x16, 0xfa, 0x58, 0xd3, 0x74, 0x2a, 0x17, 0x4d, 0xe5, 0x92, 0x9b, 0x78, 0x01, 0x44, 0xc2, - 0x44, 0x2b, 0xd4, 0x8c, 0x83, 0xd2, 0x94, 0xf7, 0x8c, 0xde, 0x62, 0x30, 0x9f, 0xe1, 0x4f, 0x72, - 0x98, 0x74, 0x30, 0x16, 0x30, 0xb0, 0x2f, 0xaf, 0x5a, 0xac, 0x17, 0xff, 0xde, 0xd4, 0x9d, 0x71, - 0x53, 0xef, 0xbf, 0xd4, 0x9a, 0xff, 0xd8, 0x94, 0x0a, 0xca, 0x02, 0x06, 0xd9, 0xfb, 0xf4, 0x5b, - 0xc7, 0xa7, 0x0e, 0x3a, 0x39, 0x75, 0xd0, 0xd7, 0x53, 0x07, 0xbd, 0x38, 0x73, 0x0a, 0x27, 0x67, - 0x4e, 0xe1, 0xd3, 0x99, 0x53, 0x78, 0xb6, 0x37, 0x45, 0xb7, 0x93, 0xef, 0xc0, 0x5d, 0x1a, 0x29, - 0x6f, 0xb2, 0x11, 0xd7, 0x63, 0x99, 0xc2, 0x74, 0xd8, 0xa6, 0x4c, 0x78, 0x5c, 0x26, 0xfd, 0x2e, - 0xa8, 0xc9, 0x5e, 0x35, 0x37, 0x47, 0x25, 0xb3, 0xea, 0x36, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, - 0x28, 0xbc, 0x1a, 0xed, 0x79, 0x05, 0x00, 0x00, + // 686 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0x3d, 0x6f, 0x53, 0x3b, + 0x18, 0xc7, 0xe3, 0xa6, 0x37, 0xf7, 0xc6, 0x57, 0xbd, 0x6d, 0xac, 0xde, 0x36, 0x6d, 0x45, 0x12, + 0x05, 0xa1, 0x06, 0xaa, 0x9e, 0x43, 0xe9, 0xd6, 0x8d, 0x14, 0x86, 0xa2, 0x16, 0x55, 0xa7, 0x08, + 0x24, 0x96, 0x23, 0x9f, 0x63, 0x2b, 0x71, 0x1a, 0xdb, 0xd1, 0xb1, 0xf3, 0xd2, 0xaf, 0x00, 0x0b, + 0x1f, 0x00, 0x21, 0x06, 0x60, 0x60, 0xe2, 0x23, 0x30, 0x76, 0xec, 0x88, 0x18, 0x02, 0x6a, 0x07, + 0x10, 0x23, 0x9f, 0x00, 0xc5, 0xf6, 0x09, 0x41, 0x08, 0xc4, 0x42, 0xc5, 0x92, 0xf8, 0x79, 0xfb, + 0xfb, 0xf7, 0x3c, 0x8e, 0x1d, 0xb8, 0xca, 0x44, 0x8b, 0xc6, 0x9a, 0xf5, 0xa8, 0x8f, 0xbb, 0xb1, + 0x66, 0x52, 0xf8, 0xbd, 0x8d, 0x88, 0x6a, 0xbc, 0x91, 0xda, 0x5e, 0x27, 0x91, 0x5a, 0xa2, 0xa5, + 0x71, 0xa2, 0x97, 0x06, 0x5c, 0xe2, 0xf2, 0x7c, 0x43, 0x36, 0xa4, 0xc9, 0xf2, 0x47, 0x2b, 0x5b, + 0xb0, 0x5c, 0x8a, 0xa5, 0xe2, 0x52, 0xf9, 0x11, 0x56, 0x74, 0xac, 0x19, 0x4b, 0xe6, 0x04, 0x97, + 0x0b, 0x98, 0x33, 0x21, 0x7d, 0xf3, 0xe9, 0x5c, 0x6b, 0x5f, 0x61, 0x62, 0xc9, 0xf9, 0x88, 0x45, + 0x76, 0xe3, 0x26, 0x4d, 0x94, 0xdf, 0xdb, 0x18, 0xaf, 0x6d, 0x72, 0xf5, 0x21, 0x80, 0xb3, 0x37, + 0x7b, 0x54, 0xe8, 0x03, 0xaa, 0xef, 0xda, 0x10, 0x42, 0x70, 0x1a, 0x13, 0x92, 0x14, 0x41, 0x05, + 0xd4, 0xf2, 0x81, 0x59, 0x23, 0x02, 0xff, 0x76, 0x95, 0xc5, 0xa9, 0x0a, 0xa8, 0xfd, 0x7b, 0x6d, + 0xc9, 0xb3, 0x64, 0xde, 0x88, 0x2c, 0x6d, 0xc2, 0xdb, 0x96, 0x4c, 0xd4, 0xfd, 0xe3, 0x61, 0x39, + 0xf3, 0x76, 0x58, 0x5e, 0x6d, 0x30, 0xdd, 0xec, 0x46, 0x5e, 0x2c, 0xb9, 0xef, 0xda, 0xb0, 0x5f, + 0xeb, 0x8a, 0x1c, 0xfa, 0xfa, 0xa8, 0x43, 0x95, 0x29, 0x08, 0x52, 0xe9, 0xea, 0xb3, 0x29, 0x98, + 0xdb, 0xc7, 0x09, 0xe6, 0x0a, 0x5d, 0x82, 0xff, 0xb9, 0x09, 0x85, 0x1d, 0x9a, 0x30, 0x49, 0x0c, + 0x4e, 0x36, 0x98, 0x71, 0xde, 0x7d, 0xe3, 0x44, 0x18, 0xae, 0x70, 0x26, 0x42, 0x41, 0x07, 0x3a, + 0x8c, 0x18, 0x09, 0x99, 0x88, 0x13, 0xca, 0xa9, 0xd0, 0x61, 0x82, 0x35, 0x35, 0xac, 0xf9, 0xfa, + 0x45, 0x07, 0xb4, 0x62, 0xb7, 0x57, 0xe4, 0xd0, 0x63, 0xd2, 0xe7, 0x58, 0x37, 0xbd, 0x5d, 0xda, + 0xc0, 0xf1, 0xd1, 0x0d, 0x1a, 0x07, 0x8b, 0x9c, 0x89, 0xdb, 0x74, 0xa0, 0xeb, 0x8c, 0xec, 0xa4, + 0x22, 0x01, 0xd6, 0x14, 0xdd, 0x82, 0x88, 0x89, 0x56, 0x18, 0x61, 0x75, 0x48, 0x75, 0xc8, 0xf1, + 0x20, 0x8c, 0x71, 0xa7, 0x98, 0x35, 0xca, 0x17, 0x9c, 0xf2, 0xff, 0xdf, 0x2b, 0xef, 0x08, 0x1d, + 0xcc, 0x32, 0xd1, 0xaa, 0x9b, 0xba, 0x3d, 0x3c, 0xd8, 0xc6, 0x1d, 0xb4, 0x06, 0x0b, 0x11, 0x23, + 0x84, 0x26, 0x2a, 0xec, 0x37, 0x99, 0xa6, 0x6d, 0xa6, 0x74, 0x71, 0xba, 0x92, 0xad, 0xe5, 0x83, + 0x39, 0x17, 0xb8, 0x97, 0xfa, 0xb7, 0x16, 0x3f, 0x3e, 0x2d, 0x83, 0x07, 0x1f, 0x5e, 0x5d, 0x49, + 0x27, 0xe1, 0xdb, 0xd9, 0x54, 0x9f, 0x00, 0x98, 0xad, 0x33, 0x82, 0x36, 0x61, 0xce, 0x16, 0xd9, + 0xa3, 0xaa, 0xaf, 0x7c, 0x1a, 0x96, 0x9d, 0xe7, 0xf3, 0xb0, 0x3c, 0x73, 0x84, 0x79, 0x7b, 0xab, + 0x6a, 0xed, 0x6a, 0xe0, 0x02, 0x28, 0x82, 0x39, 0xcc, 0x65, 0x57, 0xe8, 0xdf, 0x70, 0x90, 0x4e, + 0xb9, 0xfa, 0x1c, 0xc0, 0xc2, 0x2e, 0x56, 0xfa, 0xba, 0xe5, 0x0e, 0xa8, 0xea, 0xb6, 0x35, 0x5a, + 0x80, 0xb9, 0x3e, 0x13, 0x22, 0xc5, 0x0d, 0x9c, 0x75, 0x1e, 0x44, 0x68, 0x1e, 0xfe, 0x95, 0xc8, + 0xae, 0x20, 0xe6, 0xdc, 0xa6, 0x03, 0x6b, 0x54, 0x1f, 0x03, 0xf8, 0x8f, 0xf9, 0xf5, 0x8f, 0xa6, + 0xb9, 0xf0, 0xed, 0x34, 0xcf, 0x73, 0x60, 0x3f, 0xc0, 0x7b, 0x01, 0x20, 0x32, 0x78, 0x7f, 0xfa, + 0x1c, 0x5f, 0x03, 0x58, 0x98, 0x04, 0x3d, 0xd0, 0x38, 0x99, 0xc8, 0x05, 0x13, 0xb9, 0xe8, 0x32, + 0x9c, 0xa3, 0x82, 0x30, 0xd1, 0x08, 0x35, 0xe3, 0x54, 0x69, 0xcc, 0x3b, 0x86, 0x37, 0x1b, 0xcc, + 0x5a, 0xff, 0x9d, 0xd4, 0x8d, 0x5a, 0x10, 0x0a, 0xda, 0x77, 0x37, 0xaf, 0x98, 0xad, 0x64, 0x7f, + 0xde, 0xd4, 0xd5, 0x51, 0x53, 0x2f, 0xdf, 0x95, 0x6b, 0xbf, 0xd8, 0x94, 0x0a, 0xf2, 0x82, 0xf6, + 0xed, 0xfd, 0xac, 0x37, 0x8e, 0x4f, 0x4b, 0xe0, 0xe4, 0xb4, 0x04, 0xde, 0x9f, 0x96, 0xc0, 0xa3, + 0xb3, 0x52, 0xe6, 0xe4, 0xac, 0x94, 0x79, 0x73, 0x56, 0xca, 0xdc, 0xdf, 0x9b, 0x90, 0xdb, 0x49, + 0x9f, 0xd6, 0x5d, 0x1c, 0x29, 0x7f, 0xfc, 0xd0, 0xae, 0xc7, 0x32, 0xa1, 0x93, 0x66, 0x13, 0x33, + 0xe1, 0x73, 0x49, 0xba, 0x6d, 0xaa, 0xc6, 0x7f, 0x09, 0x66, 0xe7, 0x28, 0x67, 0x1e, 0xde, 0xcd, + 0x2f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb6, 0x26, 0xbe, 0xfd, 0x34, 0x06, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -460,6 +512,46 @@ func (this *Params) Equal(that interface{}) bool { } return true } +func (m *EventSetVoucher) 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 *EventSetVoucher) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventSetVoucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintAuction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Addr) > 0 { + i -= len(m.Addr) + copy(dAtA[i:], m.Addr) + i = encodeVarintAuction(dAtA, i, uint64(len(m.Addr))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -750,6 +842,21 @@ func encodeVarintAuction(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *EventSetVoucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Addr) + if l > 0 { + n += 1 + l + sovAuction(uint64(l)) + } + l = m.Voucher.Size() + n += 1 + l + sovAuction(uint64(l)) + return n +} + func (m *Params) Size() (n int) { if m == nil { return 0 @@ -868,6 +975,121 @@ func sovAuction(x uint64) (n int) { func sozAuction(x uint64) (n int) { return sovAuction(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (m *EventSetVoucher) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventSetVoucher: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSetVoucher: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuction + } + 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 ErrInvalidLengthAuction + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAuction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAuction + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAuction + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAuction(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthAuction + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Params) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/auction/types/codec.go b/chain/auction/types/codec.go index c19dfee4..672df22a 100644 --- a/chain/auction/types/codec.go +++ b/chain/auction/types/codec.go @@ -14,6 +14,7 @@ import ( func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgBid{}, "auction/MsgBid", nil) cdc.RegisterConcrete(&MsgUpdateParams{}, "auction/MsgUpdateParams", nil) + cdc.RegisterConcrete(&MsgClaimVoucher{}, "auction/MsgClaimVoucher", nil) cdc.RegisterConcrete(&Params{}, "auction/Params", nil) } @@ -21,6 +22,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { registry.RegisterImplementations((*sdk.Msg)(nil), &MsgBid{}, &MsgUpdateParams{}, + &MsgClaimVoucher{}, ) msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) diff --git a/chain/auction/types/genesis.pb.go b/chain/auction/types/genesis.pb.go index 458e36a1..602c729d 100644 --- a/chain/auction/types/genesis.pb.go +++ b/chain/auction/types/genesis.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -35,6 +36,8 @@ type GenesisState struct { AuctionEndingTimestamp int64 `protobuf:"varint,4,opt,name=auction_ending_timestamp,json=auctionEndingTimestamp,proto3" json:"auction_ending_timestamp,omitempty"` // last auction result LastAuctionResult *LastAuctionResult `protobuf:"bytes,5,opt,name=last_auction_result,json=lastAuctionResult,proto3" json:"last_auction_result,omitempty"` + // outstanding vouchers (failed basket deliveries) + Vouchers []types.AddressVoucher `protobuf:"bytes,6,rep,name=vouchers,proto3" json:"vouchers"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -105,6 +108,13 @@ func (m *GenesisState) GetLastAuctionResult() *LastAuctionResult { return nil } +func (m *GenesisState) GetVouchers() []types.AddressVoucher { + if m != nil { + return m.Vouchers + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.auction.v1beta1.GenesisState") } @@ -114,29 +124,33 @@ func init() { } var fileDescriptor_56f095f457353f49 = []byte{ - // 350 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4a, 0xeb, 0x40, - 0x14, 0x86, 0x93, 0xb6, 0xb7, 0x8b, 0x69, 0xef, 0xe2, 0xe6, 0x8a, 0xc4, 0x2e, 0x62, 0xd5, 0x85, - 0x5d, 0x68, 0x42, 0x75, 0xe3, 0xae, 0x18, 0x10, 0x11, 0x2a, 0x48, 0x74, 0x25, 0x42, 0x98, 0x24, - 0xc3, 0x64, 0x24, 0x99, 0x09, 0x99, 0x93, 0x82, 0x6f, 0xe1, 0x63, 0x75, 0x23, 0x74, 0xe9, 0x4a, - 0xa4, 0x7d, 0x11, 0xe9, 0x74, 0x12, 0x44, 0xb0, 0xbb, 0x33, 0xff, 0xf9, 0xcf, 0xf9, 0xfe, 0xe1, - 0xa0, 0x63, 0xc6, 0x9f, 0x49, 0x0c, 0x6c, 0x46, 0x3c, 0x5c, 0xc5, 0xc0, 0x04, 0xf7, 0x66, 0xe3, - 0x88, 0x00, 0x1e, 0x7b, 0x94, 0x70, 0x22, 0x99, 0x74, 0x8b, 0x52, 0x80, 0xb0, 0xf6, 0x1a, 0xa3, - 0xab, 0x8d, 0xae, 0x36, 0x0e, 0xb6, 0xec, 0xa8, 0xad, 0x6a, 0xc7, 0x60, 0x87, 0x0a, 0x2a, 0x54, - 0xe9, 0xad, 0xab, 0x8d, 0x7a, 0xf8, 0xd6, 0x42, 0xfd, 0xeb, 0x0d, 0xeb, 0x1e, 0x30, 0x10, 0x6b, - 0x82, 0xba, 0x05, 0x2e, 0x71, 0x2e, 0x6d, 0x73, 0x68, 0x8e, 0x7a, 0x67, 0x07, 0xee, 0xaf, 0x6c, - 0xf7, 0x4e, 0x19, 0xfd, 0xce, 0xfc, 0x63, 0xdf, 0x08, 0xf4, 0x98, 0x75, 0x84, 0xfe, 0x6a, 0x5f, - 0x58, 0x8a, 0x8a, 0x27, 0x76, 0x6b, 0x68, 0x8e, 0x3a, 0x41, 0x5f, 0x8b, 0xc1, 0x5a, 0xb3, 0x26, - 0xa8, 0x97, 0x32, 0x9a, 0x12, 0x09, 0x61, 0xc4, 0x12, 0xbb, 0xad, 0x50, 0xce, 0x16, 0x94, 0xcf, - 0x92, 0x00, 0xe9, 0x11, 0x9f, 0x25, 0xd6, 0x05, 0xb2, 0x6b, 0x0a, 0xe1, 0x09, 0xe3, 0x34, 0x04, - 0x96, 0x13, 0x09, 0x38, 0x2f, 0xec, 0xce, 0xd0, 0x1c, 0xb5, 0x83, 0x5d, 0xdd, 0xbf, 0x52, 0xed, - 0x87, 0xba, 0x6b, 0x3d, 0xa1, 0xff, 0x19, 0x96, 0x10, 0x36, 0x21, 0x89, 0xac, 0x32, 0xb0, 0xff, - 0xa8, 0x08, 0x27, 0x5b, 0x22, 0x4c, 0xb1, 0x84, 0x4b, 0xfd, 0x09, 0x35, 0x13, 0xfc, 0xcb, 0x7e, - 0x4a, 0x3e, 0x9d, 0x2f, 0x1d, 0x73, 0xb1, 0x74, 0xcc, 0xcf, 0xa5, 0x63, 0xbe, 0xae, 0x1c, 0x63, - 0xb1, 0x72, 0x8c, 0xf7, 0x95, 0x63, 0x3c, 0xde, 0x52, 0x06, 0x69, 0x15, 0xb9, 0xb1, 0xc8, 0xbd, - 0x9b, 0x1a, 0x32, 0xc5, 0x91, 0xf4, 0x1a, 0xe4, 0x69, 0x2c, 0x4a, 0xf2, 0xfd, 0x99, 0x62, 0xc6, - 0xbd, 0x5c, 0x24, 0x55, 0x46, 0x64, 0x73, 0x5e, 0x78, 0x29, 0x88, 0x8c, 0xba, 0xea, 0x7e, 0xe7, - 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x91, 0x86, 0x72, 0xfe, 0x44, 0x02, 0x00, 0x00, + // 404 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xc1, 0x6a, 0x9c, 0x40, + 0x18, 0xc7, 0xb5, 0x6e, 0x97, 0x32, 0xbb, 0x3d, 0xd4, 0x96, 0x62, 0xf7, 0x60, 0x6d, 0x7b, 0xe8, + 0x42, 0x5b, 0x07, 0xdb, 0x4b, 0x6f, 0xcb, 0x0a, 0xa5, 0x14, 0xb6, 0x21, 0x98, 0x90, 0x43, 0x08, + 0xc8, 0xe8, 0x0c, 0x3a, 0x41, 0x1d, 0x71, 0x46, 0x21, 0x6f, 0x91, 0x17, 0xc8, 0xfb, 0xec, 0x71, + 0x8f, 0x39, 0x85, 0xb0, 0xfb, 0x22, 0xc1, 0x71, 0x34, 0x61, 0x21, 0x7b, 0xfb, 0xfc, 0xbe, 0xdf, + 0xf7, 0xff, 0xff, 0x9d, 0x19, 0xf0, 0x95, 0x16, 0x97, 0x24, 0x16, 0xb4, 0x21, 0x10, 0xd5, 0xb1, + 0xa0, 0xac, 0x80, 0x8d, 0x17, 0x11, 0x81, 0x3c, 0x98, 0x90, 0x82, 0x70, 0xca, 0xdd, 0xb2, 0x62, + 0x82, 0x99, 0x1f, 0x06, 0xd0, 0x55, 0xa0, 0xab, 0xc0, 0xd9, 0x01, 0x8d, 0x1e, 0x95, 0x1a, 0xb3, + 0x6f, 0x8f, 0x60, 0xcc, 0xf2, 0xbc, 0xe5, 0x58, 0x1d, 0xa7, 0xa4, 0xe2, 0xb0, 0xf1, 0x86, 0x5a, + 0xc1, 0xef, 0x12, 0x96, 0x30, 0x59, 0xc2, 0xb6, 0xea, 0xba, 0x9f, 0x6f, 0x0c, 0x30, 0xfd, 0xdb, + 0x05, 0x3b, 0x11, 0x48, 0x10, 0x73, 0x01, 0xc6, 0x25, 0xaa, 0x50, 0xce, 0x2d, 0xdd, 0xd1, 0xe7, + 0x93, 0x9f, 0x9f, 0xdc, 0x67, 0x83, 0xba, 0xc7, 0x12, 0xf4, 0x47, 0xeb, 0xbb, 0x8f, 0x5a, 0xa0, + 0xd6, 0xcc, 0x2f, 0xe0, 0xb5, 0xe2, 0xc2, 0x8a, 0xd5, 0x05, 0xb6, 0x5e, 0x38, 0xfa, 0x7c, 0x14, + 0x4c, 0x55, 0x33, 0x68, 0x7b, 0xe6, 0x02, 0x4c, 0x52, 0x9a, 0xa4, 0x84, 0x8b, 0x30, 0xa2, 0xd8, + 0x32, 0xa4, 0x95, 0x7d, 0xc0, 0xca, 0xa7, 0x38, 0x00, 0x6a, 0xc5, 0xa7, 0xd8, 0xfc, 0x0d, 0xac, + 0xde, 0x85, 0x14, 0x98, 0x16, 0x49, 0x28, 0x68, 0x4e, 0xb8, 0x40, 0x79, 0x69, 0x8d, 0x1c, 0x7d, + 0x6e, 0x04, 0xef, 0xd5, 0xfc, 0x8f, 0x1c, 0x9f, 0xf6, 0x53, 0xf3, 0x02, 0xbc, 0xcd, 0x10, 0x17, + 0xe1, 0x10, 0x92, 0xf0, 0x3a, 0x13, 0xd6, 0x4b, 0x19, 0xe1, 0xfb, 0x81, 0x08, 0x2b, 0xc4, 0xc5, + 0x52, 0xfd, 0x84, 0xdc, 0x09, 0xde, 0x64, 0xfb, 0x2d, 0xf3, 0x08, 0xbc, 0xea, 0xcf, 0xdd, 0x1a, + 0x3b, 0xc6, 0x9e, 0x64, 0x77, 0x4b, 0xee, 0x70, 0x33, 0x8d, 0xe7, 0x2e, 0x31, 0xae, 0x08, 0xe7, + 0x67, 0x5d, 0x4b, 0x9d, 0xe5, 0xa0, 0xe1, 0x27, 0xeb, 0xad, 0xad, 0x6f, 0xb6, 0xb6, 0x7e, 0xbf, + 0xb5, 0xf5, 0xeb, 0x9d, 0xad, 0x6d, 0x76, 0xb6, 0x76, 0xbb, 0xb3, 0xb5, 0xf3, 0xff, 0x09, 0x15, + 0x69, 0x1d, 0xb5, 0x9a, 0xf0, 0x5f, 0xef, 0xb0, 0x42, 0x11, 0x87, 0x83, 0xdf, 0x8f, 0x98, 0x55, + 0xe4, 0xe9, 0x67, 0x8a, 0x68, 0x01, 0x73, 0x86, 0xeb, 0x8c, 0xf0, 0xe1, 0x6d, 0x89, 0xab, 0x92, + 0xf0, 0x68, 0x2c, 0xdf, 0xc3, 0xaf, 0x87, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x70, 0xa6, 0xa0, + 0xc1, 0x02, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -159,6 +173,20 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } if m.LastAuctionResult != nil { { size, err := m.LastAuctionResult.MarshalToSizedBuffer(dAtA[:i]) @@ -239,6 +267,12 @@ func (m *GenesisState) Size() (n int) { l = m.LastAuctionResult.Size() n += 1 + l + sovGenesis(uint64(l)) } + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } return n } @@ -420,6 +454,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Vouchers = append(m.Vouchers, types.AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/auction/types/query.pb.go b/chain/auction/types/query.pb.go index 30c0a662..5294f9b3 100644 --- a/chain/auction/types/query.pb.go +++ b/chain/auction/types/query.pb.go @@ -7,6 +7,7 @@ import ( context "context" cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" + types1 "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" @@ -394,6 +395,188 @@ func (m *QueryLastAuctionResultResponse) GetLastAuctionResult() *LastAuctionResu return nil } +type QueryVouchersRequest struct { + // denom filter; empty string returns all vouchers + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *QueryVouchersRequest) Reset() { *m = QueryVouchersRequest{} } +func (m *QueryVouchersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersRequest) ProtoMessage() {} +func (*QueryVouchersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_2ae80edbdb9fffb7, []int{8} +} +func (m *QueryVouchersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVouchersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersRequest.Merge(m, src) +} +func (m *QueryVouchersRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVouchersRequest proto.InternalMessageInfo + +func (m *QueryVouchersRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +type QueryVouchersResponse struct { + // List of outstanding vouchers matching the request filter. + Vouchers []types1.AddressVoucher `protobuf:"bytes,1,rep,name=vouchers,proto3" json:"vouchers"` +} + +func (m *QueryVouchersResponse) Reset() { *m = QueryVouchersResponse{} } +func (m *QueryVouchersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersResponse) ProtoMessage() {} +func (*QueryVouchersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_2ae80edbdb9fffb7, []int{9} +} +func (m *QueryVouchersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVouchersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersResponse.Merge(m, src) +} +func (m *QueryVouchersResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVouchersResponse proto.InternalMessageInfo + +func (m *QueryVouchersResponse) GetVouchers() []types1.AddressVoucher { + if m != nil { + return m.Vouchers + } + return nil +} + +type QueryVoucherRequest struct { + // Required. The token denom to look up. + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // Required. The bech32 address of the voucher holder. + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *QueryVoucherRequest) Reset() { *m = QueryVoucherRequest{} } +func (m *QueryVoucherRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherRequest) ProtoMessage() {} +func (*QueryVoucherRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_2ae80edbdb9fffb7, []int{10} +} +func (m *QueryVoucherRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVoucherRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherRequest.Merge(m, src) +} +func (m *QueryVoucherRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVoucherRequest proto.InternalMessageInfo + +func (m *QueryVoucherRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *QueryVoucherRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +type QueryVoucherResponse struct { + // The outstanding voucher coin for the requested denom and address. + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,1,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher"` +} + +func (m *QueryVoucherResponse) Reset() { *m = QueryVoucherResponse{} } +func (m *QueryVoucherResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherResponse) ProtoMessage() {} +func (*QueryVoucherResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_2ae80edbdb9fffb7, []int{11} +} +func (m *QueryVoucherResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVoucherResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherResponse.Merge(m, src) +} +func (m *QueryVoucherResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVoucherResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*QueryAuctionParamsRequest)(nil), "injective.auction.v1beta1.QueryAuctionParamsRequest") proto.RegisterType((*QueryAuctionParamsResponse)(nil), "injective.auction.v1beta1.QueryAuctionParamsResponse") @@ -403,6 +586,10 @@ func init() { proto.RegisterType((*QueryModuleStateResponse)(nil), "injective.auction.v1beta1.QueryModuleStateResponse") proto.RegisterType((*QueryLastAuctionResultRequest)(nil), "injective.auction.v1beta1.QueryLastAuctionResultRequest") proto.RegisterType((*QueryLastAuctionResultResponse)(nil), "injective.auction.v1beta1.QueryLastAuctionResultResponse") + proto.RegisterType((*QueryVouchersRequest)(nil), "injective.auction.v1beta1.QueryVouchersRequest") + proto.RegisterType((*QueryVouchersResponse)(nil), "injective.auction.v1beta1.QueryVouchersResponse") + proto.RegisterType((*QueryVoucherRequest)(nil), "injective.auction.v1beta1.QueryVoucherRequest") + proto.RegisterType((*QueryVoucherResponse)(nil), "injective.auction.v1beta1.QueryVoucherResponse") } func init() { @@ -410,51 +597,62 @@ func init() { } var fileDescriptor_2ae80edbdb9fffb7 = []byte{ - // 693 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x4f, 0x13, 0x41, - 0x14, 0xef, 0x02, 0x25, 0x71, 0x90, 0x44, 0x46, 0x8c, 0xed, 0x2a, 0xdb, 0xb2, 0x6a, 0x28, 0x89, - 0xec, 0x42, 0x51, 0xa3, 0x51, 0x63, 0x28, 0x07, 0x43, 0x02, 0x89, 0xae, 0x5e, 0x34, 0x1a, 0x32, - 0xdd, 0x4e, 0xb6, 0x23, 0xdd, 0x99, 0xb2, 0x33, 0x4b, 0xc2, 0xc5, 0x83, 0x9f, 0xc0, 0xc4, 0x0f, - 0x61, 0xe2, 0xc1, 0x4f, 0xe0, 0xc1, 0x23, 0x17, 0x13, 0x12, 0x2f, 0xc6, 0x03, 0x1a, 0xe0, 0x83, - 0x98, 0x9d, 0x99, 0x16, 0xb0, 0xdd, 0x6d, 0xca, 0xa9, 0xbb, 0xef, 0xbd, 0xdf, 0xef, 0xfd, 0xde, - 0xbf, 0x2d, 0xb8, 0x45, 0xe8, 0x3b, 0xec, 0x0b, 0xb2, 0x83, 0x5d, 0x14, 0xfb, 0x82, 0x30, 0xea, - 0xee, 0x2c, 0xd5, 0xb1, 0x40, 0x4b, 0xee, 0x76, 0x8c, 0xa3, 0x5d, 0xa7, 0x1d, 0x31, 0xc1, 0x60, - 0xb1, 0x1b, 0xe6, 0xe8, 0x30, 0x47, 0x87, 0x99, 0xd7, 0x03, 0xc6, 0x82, 0x16, 0x76, 0x51, 0x9b, - 0xb8, 0x88, 0x52, 0x26, 0x50, 0xe2, 0xe6, 0x0a, 0x68, 0xce, 0xa5, 0xf3, 0x77, 0x88, 0x06, 0x06, - 0x06, 0x98, 0x62, 0x4e, 0x3a, 0x8c, 0xd3, 0x01, 0x0b, 0x98, 0x7c, 0x74, 0x93, 0x27, 0x6d, 0xb5, - 0x7c, 0xc6, 0x43, 0xc6, 0xdd, 0x3a, 0xe2, 0xb8, 0x0b, 0xf4, 0x19, 0xd1, 0xf4, 0xf6, 0x35, 0x50, - 0x7c, 0x9e, 0xd4, 0xb3, 0xa2, 0xb8, 0x9f, 0xa1, 0x08, 0x85, 0xdc, 0xc3, 0xdb, 0x31, 0xe6, 0xc2, - 0x7e, 0x0b, 0xcc, 0x7e, 0x4e, 0xde, 0x66, 0x94, 0x63, 0xf8, 0x04, 0x8c, 0xb7, 0xa5, 0xa5, 0x60, - 0x94, 0x8d, 0xca, 0x44, 0x75, 0xd6, 0x49, 0x6d, 0x86, 0xa3, 0xa0, 0xb5, 0xb1, 0xbd, 0x83, 0x52, - 0xce, 0xd3, 0x30, 0xdb, 0x06, 0x65, 0x49, 0xbf, 0x1a, 0x47, 0x11, 0xa6, 0x42, 0x67, 0xa9, 0x21, - 0xbe, 0x85, 0x45, 0x47, 0xc2, 0x8f, 0x11, 0x30, 0x9b, 0x11, 0xa4, 0xa5, 0xf8, 0x60, 0x1c, 0x85, - 0x2c, 0xa6, 0xa2, 0x60, 0x94, 0x47, 0x2b, 0x13, 0xd5, 0xa2, 0xa3, 0xca, 0x76, 0x92, 0xb2, 0xbb, - 0x22, 0x56, 0x19, 0xa1, 0xb5, 0xc5, 0x44, 0xc2, 0x97, 0x3f, 0xa5, 0x4a, 0x40, 0x44, 0x33, 0xae, - 0x3b, 0x3e, 0x0b, 0x5d, 0xdd, 0x23, 0xf5, 0xb3, 0xc0, 0x1b, 0x5b, 0xae, 0xd8, 0x6d, 0x63, 0x2e, - 0x01, 0xdc, 0xd3, 0xd4, 0xd0, 0x06, 0x17, 0x75, 0x59, 0x1e, 0x8b, 0x69, 0xa3, 0x30, 0x52, 0x36, - 0x2a, 0x63, 0xde, 0x19, 0x1b, 0x74, 0x00, 0xd4, 0xef, 0xab, 0x2d, 0xc6, 0x09, 0x0d, 0x5e, 0x92, - 0x10, 0x17, 0x46, 0x65, 0x64, 0x1f, 0x0f, 0xbc, 0x09, 0x26, 0x9b, 0x24, 0x68, 0x62, 0x2e, 0x6a, - 0xa4, 0xd1, 0xc0, 0x51, 0x61, 0xac, 0x6c, 0x54, 0x2e, 0x78, 0x67, 0x8d, 0x70, 0x0d, 0x5c, 0x3a, - 0x31, 0xac, 0xa8, 0x42, 0xf3, 0x49, 0x60, 0x6d, 0x26, 0xa9, 0xe6, 0xf7, 0x41, 0xe9, 0x8a, 0xd2, - 0xce, 0x1b, 0x5b, 0x0e, 0x61, 0x6e, 0x88, 0x44, 0xd3, 0x59, 0xa3, 0xc2, 0xeb, 0x81, 0xd9, 0x45, - 0x70, 0x55, 0xb6, 0x73, 0x83, 0x35, 0xe2, 0x16, 0x7e, 0x21, 0x90, 0xc0, 0x9d, 0x56, 0xbf, 0x02, - 0x85, 0x5e, 0x97, 0x6e, 0xf0, 0x63, 0x90, 0xe7, 0x89, 0x41, 0x8f, 0x7a, 0x2e, 0x63, 0xd4, 0x4f, - 0xd5, 0x56, 0x2a, 0xbc, 0x42, 0xd9, 0x25, 0x30, 0x23, 0xa9, 0xd7, 0x11, 0xef, 0x4c, 0xd0, 0xc3, - 0x3c, 0x6e, 0x75, 0xc7, 0xfc, 0x1e, 0x58, 0x69, 0x01, 0x5a, 0xc1, 0x1b, 0x70, 0xb9, 0x85, 0xb8, - 0xd8, 0xd4, 0xe9, 0x36, 0x23, 0xe9, 0xd6, 0x7a, 0x6e, 0x67, 0xe8, 0xe9, 0xa5, 0x9c, 0x6a, 0xfd, - 0x6f, 0xaa, 0x1e, 0xe7, 0x41, 0x5e, 0x0a, 0x80, 0x9f, 0x0d, 0x30, 0x79, 0x66, 0xdf, 0xe1, 0x9d, - 0x0c, 0xf2, 0xd4, 0xdb, 0x31, 0xef, 0x0e, 0x89, 0x52, 0x65, 0xda, 0xf3, 0x1f, 0x7e, 0x1e, 0x7f, - 0x1a, 0xb9, 0x01, 0x67, 0xdd, 0xf4, 0xbb, 0x57, 0xe7, 0x03, 0xbf, 0x19, 0x60, 0xba, 0xdf, 0x55, - 0xc0, 0x87, 0x83, 0x52, 0x67, 0x1c, 0x9c, 0xf9, 0xe8, 0x7c, 0xe0, 0x21, 0xe4, 0xd7, 0x95, 0xca, - 0xaf, 0x06, 0x80, 0x9a, 0xe4, 0xd4, 0xc6, 0xc1, 0xea, 0xa0, 0xfc, 0xbd, 0x9b, 0x6b, 0x2e, 0x0f, - 0x85, 0xd1, 0x52, 0x5d, 0x29, 0x75, 0x1e, 0xce, 0x65, 0x48, 0x0d, 0x25, 0x6e, 0x53, 0x2e, 0x31, - 0xfc, 0x6e, 0x80, 0xa9, 0x9e, 0x65, 0x82, 0xf7, 0x07, 0xe5, 0x4e, 0xdb, 0x79, 0xf3, 0xc1, 0x39, - 0x90, 0x5a, 0xfb, 0x3d, 0xa9, 0x7d, 0x11, 0x3a, 0x19, 0xda, 0xfb, 0x5c, 0x4b, 0x2d, 0xd8, 0x3b, - 0xb4, 0x8c, 0xfd, 0x43, 0xcb, 0xf8, 0x7b, 0x68, 0x19, 0x1f, 0x8f, 0xac, 0xdc, 0xfe, 0x91, 0x95, - 0xfb, 0x75, 0x64, 0xe5, 0x5e, 0x6f, 0x9c, 0xfa, 0x1c, 0xae, 0x75, 0x38, 0xd7, 0x51, 0x9d, 0x9f, - 0x64, 0x58, 0xf0, 0x59, 0x84, 0x4f, 0xbf, 0x36, 0x11, 0xa1, 0xba, 0x45, 0xbc, 0x9b, 0x5e, 0x7e, - 0x39, 0xeb, 0xe3, 0xf2, 0xdf, 0x65, 0xf9, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8f, 0xf4, 0xc4, - 0x76, 0x47, 0x07, 0x00, 0x00, + // 879 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0x4d, 0x8f, 0xdb, 0x44, + 0x18, 0xc7, 0xd7, 0xdb, 0x7d, 0x9d, 0x52, 0x89, 0x4e, 0x53, 0x91, 0x18, 0xea, 0x64, 0xdd, 0x56, + 0x49, 0x69, 0xeb, 0xd9, 0xa4, 0x80, 0x40, 0x80, 0xd0, 0x66, 0x85, 0xd0, 0x4a, 0x2d, 0x02, 0x83, + 0x90, 0x40, 0xa0, 0xd5, 0xc4, 0x1e, 0x39, 0x66, 0x63, 0x4f, 0xea, 0x19, 0x47, 0xaa, 0x84, 0x38, + 0xf0, 0x09, 0x90, 0x90, 0x38, 0xf4, 0x0b, 0x20, 0x71, 0xe0, 0x13, 0x70, 0xe0, 0xd8, 0x0b, 0x52, + 0x25, 0x2e, 0x88, 0x43, 0x41, 0xbb, 0x7c, 0x90, 0xca, 0x33, 0x8f, 0xbd, 0xc9, 0x26, 0x71, 0xb2, + 0x3d, 0xc5, 0x33, 0xf3, 0x3c, 0xff, 0xe7, 0x37, 0x2f, 0xcf, 0x5f, 0x41, 0x37, 0xc3, 0xf8, 0x5b, + 0xe6, 0xc9, 0x70, 0xc4, 0x08, 0x4d, 0x3d, 0x19, 0xf2, 0x98, 0x8c, 0xda, 0x3d, 0x26, 0x69, 0x9b, + 0x3c, 0x4c, 0x59, 0xf2, 0xc8, 0x19, 0x26, 0x5c, 0x72, 0x5c, 0x2b, 0xc2, 0x1c, 0x08, 0x73, 0x20, + 0xcc, 0x7c, 0x2d, 0xe0, 0x3c, 0x18, 0x30, 0x42, 0x87, 0x21, 0xa1, 0x71, 0xcc, 0x25, 0xcd, 0x96, + 0x85, 0x4e, 0x34, 0x9b, 0xf3, 0xf5, 0x73, 0xa1, 0x85, 0x81, 0x01, 0x8b, 0x99, 0x08, 0x73, 0xc5, + 0xdb, 0xa7, 0x81, 0x1e, 0x8f, 0xa2, 0x2c, 0x8e, 0xa7, 0x5e, 0x9f, 0x25, 0x82, 0x8c, 0xda, 0xc5, + 0x37, 0x04, 0x57, 0x02, 0x1e, 0x70, 0xf5, 0x49, 0xb2, 0x2f, 0x98, 0xb5, 0x3c, 0x2e, 0x22, 0x2e, + 0x48, 0x8f, 0x0a, 0x56, 0x54, 0xf1, 0x78, 0x08, 0x2c, 0xf6, 0xab, 0xa8, 0xf6, 0x69, 0xb6, 0xf9, + 0x3d, 0x0d, 0xf2, 0x09, 0x4d, 0x68, 0x24, 0x5c, 0xf6, 0x30, 0x65, 0x42, 0xda, 0xdf, 0x20, 0x73, + 0xd6, 0xa2, 0x18, 0xf2, 0x58, 0x30, 0xfc, 0x01, 0xda, 0x18, 0xaa, 0x99, 0xaa, 0xd1, 0x30, 0x5a, + 0x17, 0x3b, 0x3b, 0xce, 0xdc, 0x93, 0x73, 0x74, 0x6a, 0x77, 0xed, 0xc9, 0xb3, 0xfa, 0x8a, 0x0b, + 0x69, 0xb6, 0x8d, 0x1a, 0x4a, 0x7e, 0x3f, 0x4d, 0x12, 0x16, 0x4b, 0xa8, 0xd2, 0xa5, 0xe2, 0x88, + 0xc9, 0x1c, 0xe1, 0xcf, 0x55, 0xb4, 0x53, 0x12, 0x04, 0x28, 0x1e, 0xda, 0xa0, 0x11, 0x4f, 0x63, + 0x59, 0x35, 0x1a, 0x17, 0x5a, 0x17, 0x3b, 0x35, 0x47, 0x6f, 0xdb, 0xc9, 0xb6, 0x5d, 0x40, 0xec, + 0xf3, 0x30, 0xee, 0xee, 0x66, 0x08, 0xbf, 0xfe, 0x5b, 0x6f, 0x05, 0xa1, 0xec, 0xa7, 0x3d, 0xc7, + 0xe3, 0x11, 0x81, 0x33, 0xd2, 0x3f, 0x77, 0x85, 0x7f, 0x44, 0xe4, 0xa3, 0x21, 0x13, 0x2a, 0x41, + 0xb8, 0x20, 0x8d, 0x6d, 0xf4, 0x12, 0x6c, 0xcb, 0xe5, 0x69, 0xec, 0x57, 0x57, 0x1b, 0x46, 0x6b, + 0xcd, 0x9d, 0x98, 0xc3, 0x0e, 0xc2, 0x30, 0xde, 0x1f, 0x70, 0x11, 0xc6, 0xc1, 0xe7, 0x61, 0xc4, + 0xaa, 0x17, 0x54, 0xe4, 0x8c, 0x15, 0x7c, 0x03, 0x5d, 0xea, 0x87, 0x41, 0x9f, 0x09, 0xd9, 0x0d, + 0x7d, 0x9f, 0x25, 0xd5, 0xb5, 0x86, 0xd1, 0xda, 0x76, 0x27, 0x27, 0xf1, 0x01, 0x7a, 0xf9, 0x74, + 0x62, 0x4f, 0x6f, 0x74, 0x3d, 0x0b, 0xec, 0x5e, 0xcb, 0x76, 0xf3, 0xcf, 0xb3, 0xfa, 0x55, 0xcd, + 0x2e, 0xfc, 0x23, 0x27, 0xe4, 0x24, 0xa2, 0xb2, 0xef, 0x1c, 0xc4, 0xd2, 0x9d, 0x4a, 0xb3, 0x6b, + 0xe8, 0x15, 0x75, 0x9c, 0x0f, 0xb8, 0x9f, 0x0e, 0xd8, 0x67, 0x92, 0x4a, 0x96, 0x1f, 0xf5, 0x97, + 0xa8, 0x3a, 0xbd, 0x04, 0x07, 0xfc, 0x3e, 0x5a, 0x17, 0xd9, 0x04, 0x5c, 0x75, 0xb3, 0xe4, 0xaa, + 0x3f, 0xd2, 0x4f, 0x58, 0xe7, 0xeb, 0x2c, 0xbb, 0x8e, 0xae, 0x29, 0xe9, 0xfb, 0x54, 0xe4, 0x37, + 0xe8, 0x32, 0x91, 0x0e, 0x8a, 0x6b, 0xfe, 0x1e, 0x59, 0xf3, 0x02, 0x80, 0xe0, 0x6b, 0x74, 0x65, + 0x40, 0x85, 0x3c, 0x84, 0x72, 0x87, 0x89, 0x5a, 0x06, 0x9e, 0x3b, 0x25, 0x3c, 0xd3, 0x92, 0x97, + 0x07, 0x67, 0xa7, 0xec, 0x3b, 0xa8, 0xa2, 0xea, 0x7f, 0x01, 0x3d, 0x05, 0x5c, 0xb8, 0x82, 0xd6, + 0x7d, 0x16, 0xf3, 0x48, 0xd5, 0xd9, 0x76, 0xf5, 0xc0, 0x0e, 0xd0, 0xd5, 0x33, 0xd1, 0x00, 0xf9, + 0x31, 0xda, 0xca, 0xbb, 0x12, 0x5e, 0xe2, 0x38, 0x99, 0xee, 0x61, 0xa7, 0xe8, 0xdb, 0x51, 0xdb, + 0xd9, 0xf3, 0xfd, 0x84, 0x09, 0x01, 0x42, 0xd0, 0x1f, 0x85, 0x86, 0xfd, 0x21, 0xba, 0x32, 0x5e, + 0xa8, 0x94, 0x0a, 0x57, 0xd1, 0x26, 0xd5, 0x72, 0xea, 0x69, 0x6e, 0xbb, 0xf9, 0xd0, 0xfe, 0x6e, + 0x72, 0x77, 0x05, 0xae, 0x8f, 0x36, 0xa1, 0x14, 0x9c, 0x63, 0x49, 0xdf, 0x10, 0x78, 0x69, 0xcd, + 0x25, 0xfb, 0xc6, 0xcd, 0xa5, 0x3b, 0x8f, 0xb7, 0xd0, 0xba, 0x2a, 0x8f, 0x7f, 0x31, 0xd0, 0xa5, + 0x09, 0x2f, 0xc1, 0x6f, 0x94, 0x5c, 0xdc, 0x5c, 0x5f, 0x32, 0xdf, 0x3c, 0x67, 0x96, 0xde, 0xae, + 0x7d, 0xeb, 0x87, 0xbf, 0xfe, 0xff, 0x69, 0xf5, 0x3a, 0xde, 0x21, 0xf3, 0x0d, 0x58, 0x5b, 0x13, + 0xfe, 0xdd, 0x40, 0x95, 0x59, 0x8e, 0x83, 0xdf, 0x5d, 0x54, 0xba, 0xc4, 0xcc, 0xcc, 0xf7, 0x5e, + 0x2c, 0xf9, 0x1c, 0xf8, 0x3d, 0x4d, 0xf9, 0x9b, 0x81, 0x30, 0x88, 0x8c, 0x75, 0x33, 0xee, 0x2c, + 0xaa, 0x3f, 0xed, 0x0a, 0xe6, 0xbd, 0x73, 0xe5, 0x00, 0x2a, 0x51, 0xa8, 0xb7, 0x70, 0xb3, 0x04, + 0x35, 0x52, 0x79, 0x87, 0xca, 0x20, 0xf0, 0x1f, 0x06, 0xba, 0x3c, 0xd5, 0xa8, 0xf8, 0xed, 0x45, + 0xb5, 0xe7, 0xf9, 0x89, 0xf9, 0xce, 0x0b, 0x64, 0x02, 0xfb, 0x5b, 0x8a, 0x7d, 0x17, 0x3b, 0x25, + 0xec, 0x33, 0x9c, 0x08, 0x3f, 0x36, 0xd0, 0x56, 0x6e, 0x08, 0x98, 0x2c, 0xaa, 0x7f, 0xc6, 0x68, + 0xcc, 0xdd, 0xe5, 0x13, 0x80, 0xf3, 0xb6, 0xe2, 0xbc, 0x89, 0xaf, 0x97, 0x70, 0xe6, 0x46, 0x82, + 0x7f, 0x36, 0xd0, 0x26, 0x28, 0x60, 0x67, 0xc9, 0x52, 0x39, 0x1a, 0x59, 0x3a, 0x1e, 0xc8, 0x5e, + 0x57, 0x64, 0x37, 0xb0, 0xbd, 0x98, 0xac, 0x1b, 0x3c, 0x39, 0xb6, 0x8c, 0xa7, 0xc7, 0x96, 0xf1, + 0xdf, 0xb1, 0x65, 0xfc, 0x78, 0x62, 0xad, 0x3c, 0x3d, 0xb1, 0x56, 0xfe, 0x3e, 0xb1, 0x56, 0xbe, + 0x7a, 0x30, 0x66, 0x34, 0x07, 0xb9, 0xce, 0x7d, 0xda, 0x13, 0xa7, 0xaa, 0x77, 0x3d, 0x9e, 0xb0, + 0xf1, 0x61, 0x9f, 0x86, 0x31, 0x3c, 0x2c, 0x51, 0x94, 0x54, 0x9e, 0xd4, 0xdb, 0x50, 0xff, 0x77, + 0xee, 0x3d, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x81, 0x03, 0xe7, 0x8a, 0x06, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -476,6 +674,10 @@ type QueryClient interface { // Retrieves the entire auction module's state AuctionModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error) LastAuctionResult(ctx context.Context, in *QueryLastAuctionResultRequest, opts ...grpc.CallOption) (*QueryLastAuctionResultResponse, error) + // Vouchers retrieves all outstanding vouchers; pass an empty denom to get all + Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) + // Voucher retrieves a single voucher for a given denom and address + Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) } type queryClient struct { @@ -522,6 +724,24 @@ func (c *queryClient) LastAuctionResult(ctx context.Context, in *QueryLastAuctio return out, nil } +func (c *queryClient) Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) { + out := new(QueryVouchersResponse) + err := c.cc.Invoke(ctx, "/injective.auction.v1beta1.Query/Vouchers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) { + out := new(QueryVoucherResponse) + err := c.cc.Invoke(ctx, "/injective.auction.v1beta1.Query/Voucher", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Retrieves auction params @@ -531,6 +751,10 @@ type QueryServer interface { // Retrieves the entire auction module's state AuctionModuleState(context.Context, *QueryModuleStateRequest) (*QueryModuleStateResponse, error) LastAuctionResult(context.Context, *QueryLastAuctionResultRequest) (*QueryLastAuctionResultResponse, error) + // Vouchers retrieves all outstanding vouchers; pass an empty denom to get all + Vouchers(context.Context, *QueryVouchersRequest) (*QueryVouchersResponse, error) + // Voucher retrieves a single voucher for a given denom and address + Voucher(context.Context, *QueryVoucherRequest) (*QueryVoucherResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -549,6 +773,12 @@ func (*UnimplementedQueryServer) AuctionModuleState(ctx context.Context, req *Qu func (*UnimplementedQueryServer) LastAuctionResult(ctx context.Context, req *QueryLastAuctionResultRequest) (*QueryLastAuctionResultResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method LastAuctionResult not implemented") } +func (*UnimplementedQueryServer) Vouchers(ctx context.Context, req *QueryVouchersRequest) (*QueryVouchersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Vouchers not implemented") +} +func (*UnimplementedQueryServer) Voucher(ctx context.Context, req *QueryVoucherRequest) (*QueryVoucherResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Voucher not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -626,6 +856,42 @@ func _Query_LastAuctionResult_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Query_Vouchers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVouchersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Vouchers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.auction.v1beta1.Query/Vouchers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Vouchers(ctx, req.(*QueryVouchersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_Voucher_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVoucherRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Voucher(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.auction.v1beta1.Query/Voucher", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Voucher(ctx, req.(*QueryVoucherRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.auction.v1beta1.Query", HandlerType: (*QueryServer)(nil), @@ -646,6 +912,14 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "LastAuctionResult", Handler: _Query_LastAuctionResult_Handler, }, + { + MethodName: "Vouchers", + Handler: _Query_Vouchers_Handler, + }, + { + MethodName: "Voucher", + Handler: _Query_Voucher_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/auction/v1beta1/query.proto", @@ -910,6 +1184,143 @@ func (m *QueryLastAuctionResultResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *QueryVouchersRequest) 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 *QueryVouchersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersRequest) 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 = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersResponse) 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 *QueryVouchersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherRequest) 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 *QueryVoucherRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherResponse) 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 *QueryVoucherResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -1021,7 +1432,63 @@ func (m *QueryLastAuctionResultResponse) Size() (n int) { return n } -func sovQuery(x uint64) (n int) { +func (m *QueryVouchersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVouchersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVoucherRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVoucherResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Voucher.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } func sozQuery(x uint64) (n int) { @@ -1670,6 +2137,369 @@ func (m *QueryLastAuctionResultResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryVouchersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVouchersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVouchersRequest: 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 ErrIntOverflowQuery + } + 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 ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryVouchersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVouchersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVouchersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Vouchers = append(m.Vouchers, types1.AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryVoucherRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVoucherRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVoucherRequest: 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 ErrIntOverflowQuery + } + 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 ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + 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 Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + 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 ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryVoucherResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVoucherResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVoucherResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/auction/types/tx.pb.go b/chain/auction/types/tx.pb.go index e3147635..dad61f00 100644 --- a/chain/auction/types/tx.pb.go +++ b/chain/auction/types/tx.pb.go @@ -203,11 +203,90 @@ func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo +// MsgClaimVoucher defines a message for claiming an outstanding voucher +type MsgClaimVoucher struct { + // The sender's Injective address. + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // The token denom of the voucher to claim. + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *MsgClaimVoucher) Reset() { *m = MsgClaimVoucher{} } +func (m *MsgClaimVoucher) String() string { return proto.CompactTextString(m) } +func (*MsgClaimVoucher) ProtoMessage() {} +func (*MsgClaimVoucher) Descriptor() ([]byte, []int) { + return fileDescriptor_0943fd5f0d415547, []int{4} +} +func (m *MsgClaimVoucher) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgClaimVoucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgClaimVoucher.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgClaimVoucher) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgClaimVoucher.Merge(m, src) +} +func (m *MsgClaimVoucher) XXX_Size() int { + return m.Size() +} +func (m *MsgClaimVoucher) XXX_DiscardUnknown() { + xxx_messageInfo_MsgClaimVoucher.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgClaimVoucher proto.InternalMessageInfo + +type MsgClaimVoucherResponse struct { +} + +func (m *MsgClaimVoucherResponse) Reset() { *m = MsgClaimVoucherResponse{} } +func (m *MsgClaimVoucherResponse) String() string { return proto.CompactTextString(m) } +func (*MsgClaimVoucherResponse) ProtoMessage() {} +func (*MsgClaimVoucherResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0943fd5f0d415547, []int{5} +} +func (m *MsgClaimVoucherResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgClaimVoucherResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgClaimVoucherResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgClaimVoucherResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgClaimVoucherResponse.Merge(m, src) +} +func (m *MsgClaimVoucherResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgClaimVoucherResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgClaimVoucherResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgClaimVoucherResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgBid)(nil), "injective.auction.v1beta1.MsgBid") proto.RegisterType((*MsgBidResponse)(nil), "injective.auction.v1beta1.MsgBidResponse") proto.RegisterType((*MsgUpdateParams)(nil), "injective.auction.v1beta1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.auction.v1beta1.MsgUpdateParamsResponse") + proto.RegisterType((*MsgClaimVoucher)(nil), "injective.auction.v1beta1.MsgClaimVoucher") + proto.RegisterType((*MsgClaimVoucherResponse)(nil), "injective.auction.v1beta1.MsgClaimVoucherResponse") } func init() { @@ -215,39 +294,42 @@ func init() { } var fileDescriptor_0943fd5f0d415547 = []byte{ - // 504 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x31, 0x8f, 0xd3, 0x3e, - 0x1c, 0x8d, 0xff, 0xbd, 0xab, 0x54, 0xff, 0xd1, 0x01, 0x51, 0x45, 0xdb, 0x0c, 0x69, 0xc9, 0x00, - 0x25, 0xd2, 0xc5, 0x6a, 0x91, 0x18, 0x6e, 0x00, 0x5d, 0x99, 0x90, 0xa8, 0x84, 0x72, 0x62, 0x61, - 0x39, 0x39, 0x89, 0xe5, 0x1a, 0x11, 0x3b, 0x8a, 0x9d, 0x8a, 0xdb, 0x10, 0x13, 0x62, 0xe2, 0x13, - 0xa0, 0xfb, 0x08, 0x1d, 0x10, 0x9f, 0xe1, 0xc6, 0x83, 0x89, 0x09, 0xa1, 0x76, 0x28, 0x1f, 0x03, - 0x25, 0x76, 0x7a, 0x05, 0xe9, 0x0e, 0x96, 0xc4, 0x3f, 0xbf, 0xf7, 0x7b, 0xbf, 0xf7, 0x6c, 0x43, - 0x8f, 0xf1, 0x97, 0x24, 0x56, 0x6c, 0x4e, 0x10, 0x2e, 0x62, 0xc5, 0x04, 0x47, 0xf3, 0x51, 0x44, - 0x14, 0x1e, 0x21, 0xf5, 0x3a, 0xc8, 0x72, 0xa1, 0x84, 0xdd, 0xdb, 0x70, 0x02, 0xc3, 0x09, 0x0c, - 0xc7, 0x69, 0x53, 0x41, 0x45, 0xc5, 0x42, 0xe5, 0x4a, 0x37, 0x38, 0x6e, 0x2c, 0x64, 0x2a, 0x24, - 0x8a, 0xb0, 0x24, 0x1b, 0xb9, 0x58, 0x30, 0x6e, 0xf0, 0x8e, 0xc1, 0x53, 0x49, 0xd1, 0x7c, 0x54, - 0xfe, 0x0c, 0xd0, 0xd3, 0xc0, 0xb1, 0x56, 0xd4, 0x85, 0x81, 0xee, 0x5e, 0x6e, 0xb4, 0x36, 0xa5, - 0x89, 0x37, 0x71, 0xca, 0xb8, 0x40, 0xd5, 0x57, 0x6f, 0x79, 0x1f, 0x01, 0x6c, 0x4e, 0x25, 0x9d, - 0xb0, 0xc4, 0xbe, 0x05, 0x9b, 0x92, 0xf0, 0x84, 0xe4, 0x5d, 0x30, 0x00, 0xc3, 0x56, 0x68, 0x2a, - 0xfb, 0x21, 0x84, 0x11, 0x4b, 0x8e, 0x71, 0x2a, 0x0a, 0xae, 0xba, 0xff, 0x0d, 0xc0, 0xf0, 0xff, - 0x71, 0x2f, 0x30, 0x0e, 0xca, 0x1c, 0x75, 0xe4, 0xe0, 0xb1, 0x60, 0x7c, 0xb2, 0x73, 0xf6, 0xbd, - 0x6f, 0x85, 0xad, 0x88, 0x25, 0x87, 0x55, 0x87, 0xdd, 0x86, 0xbb, 0xb9, 0x28, 0x78, 0xd2, 0x6d, - 0x0c, 0xc0, 0x70, 0x27, 0xd4, 0xc5, 0xc1, 0x9d, 0x77, 0xa7, 0x7d, 0xeb, 0xe7, 0x69, 0xdf, 0x7a, - 0xbb, 0x5e, 0xf8, 0x66, 0xd4, 0xfb, 0xf5, 0xc2, 0xdf, 0xab, 0x23, 0x68, 0x57, 0xde, 0x0d, 0xb8, - 0xa7, 0x57, 0x21, 0x91, 0x99, 0xe0, 0x92, 0x78, 0x9f, 0x01, 0xbc, 0x3e, 0x95, 0xf4, 0x79, 0x96, - 0x60, 0x45, 0x9e, 0xe1, 0x1c, 0xa7, 0xd2, 0x7e, 0x00, 0x5b, 0xb8, 0x50, 0x33, 0x91, 0x33, 0x75, - 0xa2, 0xed, 0x4f, 0xba, 0x5f, 0x3f, 0xed, 0xb7, 0x8d, 0xcb, 0xc3, 0x24, 0xc9, 0x89, 0x94, 0x47, - 0x2a, 0x67, 0x9c, 0x86, 0x17, 0x54, 0xfb, 0x11, 0x6c, 0x66, 0x95, 0x82, 0xc9, 0x75, 0x3b, 0xb8, - 0xf4, 0x42, 0x03, 0x3d, 0xca, 0xe4, 0x33, 0x6d, 0x07, 0x7e, 0x69, 0xff, 0x42, 0xb0, 0x4c, 0xd0, - 0xd9, 0x4a, 0xb0, 0x6d, 0xd2, 0xeb, 0xc1, 0xce, 0x1f, 0x5b, 0x75, 0xa6, 0xf1, 0x17, 0x00, 0x1b, - 0x53, 0x49, 0xed, 0x23, 0xd8, 0x28, 0xaf, 0xe2, 0x2a, 0x1b, 0xfa, 0x34, 0x9c, 0x7b, 0x7f, 0xa5, - 0xd4, 0xe2, 0x36, 0x87, 0xd7, 0x7e, 0x3b, 0x2c, 0xff, 0xea, 0xd6, 0x6d, 0xae, 0x33, 0xfe, 0x77, - 0x6e, 0x3d, 0xcf, 0xd9, 0x7d, 0xb3, 0x5e, 0xf8, 0x60, 0x42, 0xcf, 0x96, 0x2e, 0x38, 0x5f, 0xba, - 0xe0, 0xc7, 0xd2, 0x05, 0x1f, 0x56, 0xae, 0x75, 0xbe, 0x72, 0xad, 0x6f, 0x2b, 0xd7, 0x7a, 0x31, - 0xa5, 0x4c, 0xcd, 0x8a, 0x28, 0x88, 0x45, 0x8a, 0x9e, 0xd4, 0xf2, 0x4f, 0x71, 0x24, 0xd1, 0x66, - 0xd8, 0x7e, 0x2c, 0x72, 0xb2, 0x5d, 0xce, 0x30, 0xe3, 0x28, 0x15, 0x49, 0xf1, 0x8a, 0xc8, 0xcd, - 0x33, 0x57, 0x27, 0x19, 0x91, 0x51, 0xb3, 0x7a, 0xca, 0xf7, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, - 0x5f, 0x56, 0x1a, 0xd8, 0xb1, 0x03, 0x00, 0x00, + // 557 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xb6, 0x9b, 0x26, 0x52, 0x0e, 0x54, 0xc0, 0x8a, 0xc8, 0x8f, 0xc1, 0x09, 0x19, 0x20, 0x44, + 0xaa, 0x4f, 0x09, 0x12, 0x43, 0x06, 0x50, 0xd3, 0x09, 0x89, 0x48, 0xc8, 0x15, 0x0c, 0x2c, 0xd5, + 0xd9, 0x77, 0x72, 0x0e, 0xd5, 0x77, 0x96, 0xef, 0x1c, 0xd1, 0x0d, 0x31, 0x21, 0x26, 0xfe, 0x02, + 0xd4, 0x3f, 0x21, 0x03, 0x62, 0x67, 0xeb, 0x58, 0x31, 0x31, 0x21, 0x94, 0x0c, 0xe1, 0xcf, 0x40, + 0xf6, 0x9d, 0x53, 0x17, 0x91, 0x86, 0x25, 0xb9, 0x77, 0xef, 0x7b, 0xdf, 0xfb, 0xbe, 0xf7, 0x7c, + 0xa0, 0x4b, 0xd9, 0x1b, 0xe2, 0x4b, 0x3a, 0x23, 0x10, 0x25, 0xbe, 0xa4, 0x9c, 0xc1, 0xd9, 0xc0, + 0x23, 0x12, 0x0d, 0xa0, 0x7c, 0xeb, 0x44, 0x31, 0x97, 0xdc, 0x6a, 0xae, 0x31, 0x8e, 0xc6, 0x38, + 0x1a, 0xd3, 0xaa, 0x05, 0x3c, 0xe0, 0x19, 0x0a, 0xa6, 0x27, 0x55, 0xd0, 0xb2, 0x7d, 0x2e, 0x42, + 0x2e, 0xa0, 0x87, 0x04, 0x59, 0xd3, 0xf9, 0x9c, 0x32, 0x9d, 0xaf, 0xeb, 0x7c, 0x28, 0x02, 0x38, + 0x1b, 0xa4, 0x7f, 0x3a, 0xd1, 0x54, 0x89, 0x63, 0xc5, 0xa8, 0x02, 0x9d, 0x7a, 0xb0, 0x59, 0x68, + 0x2e, 0x4a, 0x01, 0xef, 0xa0, 0x90, 0x32, 0x0e, 0xb3, 0x5f, 0x75, 0xd5, 0xfd, 0x6c, 0x82, 0xca, + 0x44, 0x04, 0x63, 0x8a, 0xad, 0xbb, 0xa0, 0x22, 0x08, 0xc3, 0x24, 0x6e, 0x98, 0x1d, 0xb3, 0x57, + 0x75, 0x75, 0x64, 0x3d, 0x01, 0xc0, 0xa3, 0xf8, 0x18, 0x85, 0x3c, 0x61, 0xb2, 0xb1, 0xd3, 0x31, + 0x7b, 0x37, 0x86, 0x4d, 0x47, 0x2b, 0x48, 0x7d, 0xe4, 0x96, 0x9d, 0x43, 0x4e, 0xd9, 0x78, 0xf7, + 0xfc, 0x67, 0xdb, 0x70, 0xab, 0x1e, 0xc5, 0x07, 0x59, 0x85, 0x55, 0x03, 0xe5, 0x98, 0x27, 0x0c, + 0x37, 0x4a, 0x1d, 0xb3, 0xb7, 0xeb, 0xaa, 0x60, 0x74, 0xff, 0xc3, 0x59, 0xdb, 0xf8, 0x7d, 0xd6, + 0x36, 0xde, 0xaf, 0xe6, 0x7d, 0xdd, 0xea, 0xe3, 0x6a, 0xde, 0xdf, 0xcb, 0x2d, 0x28, 0x55, 0xdd, + 0xdb, 0x60, 0x4f, 0x9d, 0x5c, 0x22, 0x22, 0xce, 0x04, 0xe9, 0x7e, 0x35, 0xc1, 0xad, 0x89, 0x08, + 0x5e, 0x46, 0x18, 0x49, 0xf2, 0x02, 0xc5, 0x28, 0x14, 0xd6, 0x63, 0x50, 0x45, 0x89, 0x9c, 0xf2, + 0x98, 0xca, 0x53, 0x25, 0x7f, 0xdc, 0xf8, 0xfe, 0x65, 0xbf, 0xa6, 0x55, 0x1e, 0x60, 0x1c, 0x13, + 0x21, 0x8e, 0x64, 0x4c, 0x59, 0xe0, 0x5e, 0x42, 0xad, 0xa7, 0xa0, 0x12, 0x65, 0x0c, 0xda, 0xd7, + 0x3d, 0x67, 0xe3, 0x42, 0x1d, 0xd5, 0x4a, 0xfb, 0xd3, 0x65, 0xa3, 0x7e, 0x2a, 0xff, 0x92, 0x30, + 0x75, 0x50, 0x2f, 0x38, 0x28, 0x8a, 0xec, 0x36, 0x41, 0xfd, 0xaf, 0xab, 0xb5, 0xa7, 0x28, 0xb3, + 0x74, 0x78, 0x82, 0x68, 0xf8, 0x8a, 0x27, 0xfe, 0x94, 0xc4, 0x1b, 0xd7, 0x51, 0x03, 0x65, 0x4c, + 0x18, 0x0f, 0x33, 0xc5, 0x55, 0x57, 0x05, 0x23, 0xb8, 0x61, 0x9c, 0x45, 0x31, 0x45, 0x7a, 0x2d, + 0xa6, 0x78, 0x95, 0x8b, 0x19, 0x7e, 0xdb, 0x01, 0xa5, 0x89, 0x08, 0xac, 0x23, 0x50, 0x4a, 0xbf, + 0x8b, 0xeb, 0x66, 0xa2, 0x56, 0xd3, 0x7a, 0xb8, 0x15, 0x92, 0x93, 0x5b, 0x0c, 0xdc, 0xbc, 0xb2, + 0xb9, 0xfe, 0xf5, 0xa5, 0x45, 0x6c, 0x6b, 0xf8, 0xff, 0xd8, 0x62, 0xbf, 0x2b, 0x63, 0xdd, 0xd2, + 0xaf, 0x88, 0xdd, 0xd6, 0xef, 0x5f, 0xc3, 0x6b, 0x95, 0xdf, 0xad, 0xe6, 0x7d, 0x73, 0x1c, 0x9c, + 0x2f, 0x6c, 0xf3, 0x62, 0x61, 0x9b, 0xbf, 0x16, 0xb6, 0xf9, 0x69, 0x69, 0x1b, 0x17, 0x4b, 0xdb, + 0xf8, 0xb1, 0xb4, 0x8d, 0xd7, 0x93, 0x80, 0xca, 0x69, 0xe2, 0x39, 0x3e, 0x0f, 0xe1, 0xb3, 0x9c, + 0xfe, 0x39, 0xf2, 0x04, 0x5c, 0x37, 0xdb, 0xf7, 0x79, 0x4c, 0x8a, 0xe1, 0x14, 0x51, 0x06, 0x43, + 0x8e, 0x93, 0x13, 0x22, 0xd6, 0x6f, 0x5c, 0x9e, 0x46, 0x44, 0x78, 0x95, 0xec, 0x1d, 0x3f, 0xfa, + 0x13, 0x00, 0x00, 0xff, 0xff, 0xe9, 0xb5, 0x27, 0x28, 0xae, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -265,6 +347,8 @@ type MsgClient interface { // Bid defines a method for placing a bid for an auction Bid(ctx context.Context, in *MsgBid, opts ...grpc.CallOption) (*MsgBidResponse, error) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) + // ClaimVoucher defines a method for claiming an outstanding voucher + ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts ...grpc.CallOption) (*MsgClaimVoucherResponse, error) } type msgClient struct { @@ -293,11 +377,22 @@ func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts return out, nil } +func (c *msgClient) ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts ...grpc.CallOption) (*MsgClaimVoucherResponse, error) { + out := new(MsgClaimVoucherResponse) + err := c.cc.Invoke(ctx, "/injective.auction.v1beta1.Msg/ClaimVoucher", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // Bid defines a method for placing a bid for an auction Bid(context.Context, *MsgBid) (*MsgBidResponse, error) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) + // ClaimVoucher defines a method for claiming an outstanding voucher + ClaimVoucher(context.Context, *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -310,6 +405,9 @@ func (*UnimplementedMsgServer) Bid(ctx context.Context, req *MsgBid) (*MsgBidRes func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") } +func (*UnimplementedMsgServer) ClaimVoucher(ctx context.Context, req *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ClaimVoucher not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -351,6 +449,24 @@ func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Msg_ClaimVoucher_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgClaimVoucher) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).ClaimVoucher(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.auction.v1beta1.Msg/ClaimVoucher", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).ClaimVoucher(ctx, req.(*MsgClaimVoucher)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.auction.v1beta1.Msg", HandlerType: (*MsgServer)(nil), @@ -363,6 +479,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "UpdateParams", Handler: _Msg_UpdateParams_Handler, }, + { + MethodName: "ClaimVoucher", + Handler: _Msg_ClaimVoucher_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/auction/v1beta1/tx.proto", @@ -499,6 +619,66 @@ func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *MsgClaimVoucher) 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 *MsgClaimVoucher) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgClaimVoucher) 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 = encodeVarintTx(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgClaimVoucherResponse) 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 *MsgClaimVoucherResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgClaimVoucherResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func encodeVarintTx(dAtA []byte, offset int, v uint64) int { offset -= sovTx(v) base := offset @@ -561,6 +741,32 @@ func (m *MsgUpdateParamsResponse) Size() (n int) { return n } +func (m *MsgClaimVoucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgClaimVoucherResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -916,6 +1122,170 @@ func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgClaimVoucher) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgClaimVoucher: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgClaimVoucher: 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 stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + 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 ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + 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 ErrIntOverflowTx + } + 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 ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgClaimVoucherResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgClaimVoucherResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgClaimVoucherResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/common/vouchers/types/vouchers.pb.go b/chain/common/vouchers/types/vouchers.pb.go new file mode 100644 index 00000000..927e2ad0 --- /dev/null +++ b/chain/common/vouchers/types/vouchers.pb.go @@ -0,0 +1,376 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/common/vouchers/v1/vouchers.proto + +package types + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-sdk/types" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/gogoproto/gogoproto" + 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 + +// AddressVoucher pairs a bech32 address with its outstanding voucher coin. +type AddressVoucher struct { + // The bech32 address of the voucher holder. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The outstanding voucher coin. + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher"` +} + +func (m *AddressVoucher) Reset() { *m = AddressVoucher{} } +func (m *AddressVoucher) String() string { return proto.CompactTextString(m) } +func (*AddressVoucher) ProtoMessage() {} +func (*AddressVoucher) Descriptor() ([]byte, []int) { + return fileDescriptor_d534031fdd31c1a9, []int{0} +} +func (m *AddressVoucher) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressVoucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressVoucher.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressVoucher) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressVoucher.Merge(m, src) +} +func (m *AddressVoucher) XXX_Size() int { + return m.Size() +} +func (m *AddressVoucher) XXX_DiscardUnknown() { + xxx_messageInfo_AddressVoucher.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressVoucher proto.InternalMessageInfo + +func (m *AddressVoucher) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +func init() { + proto.RegisterType((*AddressVoucher)(nil), "injective.common.vouchers.v1.AddressVoucher") +} + +func init() { + proto.RegisterFile("injective/common/vouchers/v1/vouchers.proto", fileDescriptor_d534031fdd31c1a9) +} + +var fileDescriptor_d534031fdd31c1a9 = []byte{ + // 282 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0xc1, 0x4a, 0xfb, 0x40, + 0x10, 0xc6, 0xb3, 0xff, 0xc3, 0xbf, 0x18, 0xc1, 0x43, 0xf0, 0x10, 0x8b, 0x6c, 0x8b, 0x17, 0x0b, + 0xd2, 0x1d, 0xa2, 0x4f, 0x60, 0x3d, 0x09, 0x9e, 0x0a, 0x7a, 0xf0, 0x96, 0x6c, 0x96, 0x64, 0xd5, + 0x64, 0x4a, 0x26, 0x59, 0xf0, 0x2d, 0xfa, 0x58, 0x3d, 0xf6, 0x28, 0x1e, 0x8a, 0x24, 0x2f, 0x22, + 0xc9, 0x26, 0xa1, 0xe0, 0x69, 0x67, 0x76, 0xbe, 0xf9, 0xcd, 0xc7, 0xe7, 0xde, 0xe8, 0xfc, 0x4d, + 0xc9, 0x52, 0x1b, 0x05, 0x12, 0xb3, 0x0c, 0x73, 0x30, 0x58, 0xc9, 0x54, 0x15, 0x04, 0x26, 0x18, + 0x6b, 0xb1, 0x29, 0xb0, 0x44, 0xef, 0x72, 0x14, 0x0b, 0x2b, 0x16, 0xa3, 0xc0, 0x04, 0xd3, 0xf3, + 0x04, 0x13, 0xec, 0x84, 0xd0, 0x56, 0x76, 0x67, 0xca, 0x25, 0x52, 0x86, 0x04, 0x51, 0x48, 0x0a, + 0x4c, 0x10, 0xa9, 0x32, 0x0c, 0x40, 0xa2, 0xce, 0xed, 0xfc, 0x6a, 0xcb, 0xdc, 0xb3, 0xfb, 0x38, + 0x2e, 0x14, 0xd1, 0x8b, 0x85, 0x79, 0xbe, 0x3b, 0x09, 0xed, 0x8f, 0xcf, 0xe6, 0x6c, 0x71, 0xb2, + 0x1e, 0x5a, 0x2f, 0x76, 0x27, 0xfd, 0x45, 0xff, 0xdf, 0x9c, 0x2d, 0x4e, 0x6f, 0x2f, 0x84, 0xc5, + 0x8b, 0x16, 0x2f, 0x7a, 0xbc, 0x78, 0x40, 0x9d, 0xaf, 0x60, 0x77, 0x98, 0x39, 0xdf, 0x87, 0xd9, + 0x75, 0xa2, 0xcb, 0xb4, 0x8a, 0x5a, 0xc7, 0xd0, 0x7b, 0xb1, 0xcf, 0x92, 0xe2, 0x77, 0x28, 0x3f, + 0x37, 0x8a, 0xba, 0x85, 0xf5, 0x80, 0x5e, 0xe1, 0xae, 0xe6, 0x6c, 0x5f, 0x73, 0xf6, 0x53, 0x73, + 0xb6, 0x6d, 0xb8, 0xb3, 0x6f, 0xb8, 0xf3, 0xd5, 0x70, 0xe7, 0xf5, 0xf9, 0x88, 0xf5, 0x38, 0x64, + 0xf1, 0x14, 0x46, 0x04, 0x63, 0x32, 0x4b, 0x89, 0x85, 0x3a, 0x6e, 0xd3, 0x50, 0xe7, 0x90, 0x61, + 0x5c, 0x7d, 0x28, 0xfa, 0x93, 0x71, 0x77, 0x3e, 0xfa, 0xdf, 0x45, 0x71, 0xf7, 0x1b, 0x00, 0x00, + 0xff, 0xff, 0xf8, 0xed, 0x31, 0x01, 0x8d, 0x01, 0x00, 0x00, +} + +func (m *AddressVoucher) 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 *AddressVoucher) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressVoucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintVouchers(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintVouchers(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintVouchers(dAtA []byte, offset int, v uint64) int { + offset -= sovVouchers(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *AddressVoucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovVouchers(uint64(l)) + } + l = m.Voucher.Size() + n += 1 + l + sovVouchers(uint64(l)) + return n +} + +func sovVouchers(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozVouchers(x uint64) (n int) { + return sovVouchers(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *AddressVoucher) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVouchers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AddressVoucher: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddressVoucher: 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 ErrIntOverflowVouchers + } + 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 ErrInvalidLengthVouchers + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthVouchers + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowVouchers + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthVouchers + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthVouchers + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipVouchers(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthVouchers + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipVouchers(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, ErrIntOverflowVouchers + } + 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, ErrIntOverflowVouchers + } + 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, ErrIntOverflowVouchers + } + 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, ErrInvalidLengthVouchers + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupVouchers + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthVouchers + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthVouchers = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowVouchers = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupVouchers = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/downtime-detector/types/keys.go b/chain/downtime-detector/types/keys.go index e6f2222b..1b9402aa 100644 --- a/chain/downtime-detector/types/keys.go +++ b/chain/downtime-detector/types/keys.go @@ -1,15 +1,13 @@ package types -import "fmt" - // There are few of these keys, so we don't concern ourselves with small key names. var ( lastBlockTimestampKey = []byte("last_block_timestamp") - lastDowntimeOfLengthPrefix = "last_downtime_of_length/%s" + lastDowntimeOfLengthPrefix = "last_downtime_of_length/" ) func GetLastBlockTimestampKey() []byte { return lastBlockTimestampKey } func GetLastDowntimeOfLengthKey(downtimeDur Downtime) []byte { - return []byte(fmt.Sprintf(lastDowntimeOfLengthPrefix, downtimeDur.String())) + return []byte(lastDowntimeOfLengthPrefix + downtimeDur.String()) } diff --git a/chain/evm/types/errors.go b/chain/evm/types/errors.go index 0aa09a1a..7821f451 100644 --- a/chain/evm/types/errors.go +++ b/chain/evm/types/errors.go @@ -38,6 +38,7 @@ const ( codeErrInvalidGasLimit codeErrConfigOverrides codeErrCreateNotAuthorized + codeErrBlockedAddress ) var ErrPostTxProcessing = errors.New("failed to execute post processing") @@ -110,6 +111,9 @@ var ( ErrInvalidGasLimit = errorsmod.Register(ModuleName, codeErrInvalidGasLimit, "invalid gas limit") ErrConfigOverrides = errorsmod.Register(ModuleName, codeErrConfigOverrides, "failed to apply state override") + + // ErrBlockedAddress returns an error if the recipient is not allowed to receive funds. + ErrBlockedAddress = errorsmod.Register(ModuleName, codeErrBlockedAddress, "address is not allowed to receive funds") ) var ( diff --git a/chain/exchange/types/authz_common.go b/chain/exchange/types/authz_common.go index 2eefa036..0d13cb60 100644 --- a/chain/exchange/types/authz_common.go +++ b/chain/exchange/types/authz_common.go @@ -27,15 +27,31 @@ func reduceToSet(slice []string) []string { i := 0 for k := range set { output[i] = k - i += 1 + i++ } return output } +type batchUpdateOrdersAuthzCheck struct { + field string + check func(BatchUpdateOrdersAuthz, *MsgBatchUpdateOrders) error +} + var ( - _ authz.Authorization = &BatchUpdateOrdersAuthz{} - authorizedMarketsLimit = 200 - authorizedMarketsLimitMux = new(sync.RWMutex) + _ authz.Authorization = &BatchUpdateOrdersAuthz{} + authorizedMarketsLimit = 200 + authorizedMarketsLimitMux = new(sync.RWMutex) + batchUpdateOrdersAuthzChecks = []batchUpdateOrdersAuthzCheck{ + {field: "SpotOrdersToCreate", check: BatchUpdateOrdersAuthz.authorizeSpotOrdersToCreate}, + {field: "SpotOrdersToCancel", check: BatchUpdateOrdersAuthz.authorizeSpotOrdersToCancel}, + {field: "SpotMarketIdsToCancelAll", check: BatchUpdateOrdersAuthz.authorizeSpotMarketIDsToCancelAll}, + {field: "DerivativeOrdersToCreate", check: BatchUpdateOrdersAuthz.authorizeDerivativeOrdersToCreate}, + {field: "DerivativeOrdersToCancel", check: BatchUpdateOrdersAuthz.authorizeDerivativeOrdersToCancel}, + {field: "DerivativeMarketIdsToCancelAll", check: BatchUpdateOrdersAuthz.authorizeDerivativeMarketIDsToCancelAll}, + {field: "BinaryOptionsOrdersToCreate", check: BatchUpdateOrdersAuthz.authorizeBinaryOptionsOrdersToCreate}, + {field: "BinaryOptionsOrdersToCancel", check: BatchUpdateOrdersAuthz.authorizeBinaryOptionsOrdersToCancel}, + {field: "BinaryOptionsMarketIdsToCancelAll", check: BatchUpdateOrdersAuthz.authorizeBinaryOptionsMarketIDsToCancelAll}, + } ) // AuthorizedMarketsLimit returns the authorized markets limit. @@ -63,61 +79,11 @@ func (a BatchUpdateOrdersAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz. return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") } - // check authorized spot markets - for _, o := range ordersToUpdate.SpotOrdersToCreate { - if !find(a.SpotMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested spot market to create orders is unauthorized") - } - if o.OrderInfo.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") + for _, authzCheck := range batchUpdateOrdersAuthzChecks { + if err := authzCheck.check(a, ordersToUpdate); err != nil { + return authz.AcceptResponse{}, err } } - for _, o := range ordersToUpdate.SpotOrdersToCancel { - if !find(a.SpotMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested spot market to cancel orders is unauthorized") - } - if o.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - for _, id := range ordersToUpdate.SpotMarketIdsToCancelAll { - if !find(a.SpotMarkets, id) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested spot market to cancel all orders is unauthorized") - } - - if ordersToUpdate.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - - // check authorized derivative markets - for _, o := range ordersToUpdate.DerivativeOrdersToCreate { - if !find(a.DerivativeMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested derivative market to create orders is unauthorized") - } - if o.OrderInfo.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - for _, o := range ordersToUpdate.DerivativeOrdersToCancel { - if !find(a.DerivativeMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested derivative market to cancel orders is unauthorized") - } - if o.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - for _, id := range ordersToUpdate.DerivativeMarketIdsToCancelAll { - if !find(a.DerivativeMarkets, id) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested derivative market to cancel all orders is unauthorized") - } - - if ordersToUpdate.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - - // TODO add check for BO markets? return authz.AcceptResponse{Accept: true, Delete: false, Updated: nil}, nil } @@ -129,23 +95,188 @@ func (a BatchUpdateOrdersAuthz) ValidateBasic() error { if len(a.SpotMarkets) == 0 && len(a.DerivativeMarkets) == 0 { return sdkerrors.ErrLogic.Wrapf("invalid markets array length") } - if len(a.SpotMarkets) > AuthorizedMarketsLimit() || len(a.DerivativeMarkets) > AuthorizedMarketsLimit() { + if err := ValidateAuthorizedMarkets(a.SpotMarkets, "invalid spot market id to authorize", AuthorizedMarketsLimit()); err != nil { + return err + } + + return ValidateAuthorizedMarkets(a.DerivativeMarkets, "invalid derivative market id to authorize", AuthorizedMarketsLimit()) +} + +// ValidateAuthorizedMarkets validates a batch-update authz market allowlist. +func ValidateAuthorizedMarkets(marketIDs []string, invalidMarketErr string, authorizedMarketsLimit int) error { + if len(marketIDs) > authorizedMarketsLimit { return sdkerrors.ErrLogic.Wrapf("invalid markets array length") } - spotMarketsSet := reduceToSet(a.SpotMarkets) - derivativeMarketsSet := reduceToSet(a.DerivativeMarkets) - if len(a.SpotMarkets) != len(spotMarketsSet) || len(a.DerivativeMarkets) != len(derivativeMarketsSet) { + if len(marketIDs) != len(reduceToSet(marketIDs)) { return sdkerrors.ErrLogic.Wrapf("cannot have duplicate markets") } - for _, m := range a.SpotMarkets { - if !IsHexHash(m) { - return sdkerrors.ErrLogic.Wrap("invalid spot market id to authorize") + for _, marketID := range marketIDs { + if !IsHexHash(marketID) { + return sdkerrors.ErrLogic.Wrap(invalidMarketErr) } } - for _, m := range a.DerivativeMarkets { - if !IsHexHash(m) { - return sdkerrors.ErrLogic.Wrap("invalid derivative market id to authorize") + return nil +} + +// AuthorizeOrders validates a batch of authz-protected orders against the allowed markets and subaccount. +func AuthorizeOrders[T any]( + authorizedMarkets []string, + subaccountID string, + orders []T, + marketIDFn func(T) string, + orderSubaccountIDFn func(T) string, + unauthorizedMarketErr string, +) error { + for _, order := range orders { + if !find(authorizedMarkets, marketIDFn(order)) { + return sdkerrors.ErrUnauthorized.Wrap(unauthorizedMarketErr) + } + if orderSubaccountIDFn(order) != subaccountID { + return sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") } } + return nil } + +// AuthorizeCancelAll validates cancel-all market requests against the allowed markets and subaccount. +func AuthorizeCancelAll( + authorizedMarkets []string, + authzSubaccountID, requestSubaccountID string, + marketIDs []string, + unauthorizedMarketErr string, +) error { + for _, marketID := range marketIDs { + if !find(authorizedMarkets, marketID) { + return sdkerrors.ErrUnauthorized.Wrap(unauthorizedMarketErr) + } + if requestSubaccountID != authzSubaccountID { + return sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") + } + } + + return nil +} + +func authorizeSpotOrders(authorizedMarkets []string, subaccountID string, orders []*SpotOrder, unauthorizedMarketErr string) error { + return AuthorizeOrders( + authorizedMarkets, + subaccountID, + orders, + func(order *SpotOrder) string { return order.MarketId }, + func(order *SpotOrder) string { return order.OrderInfo.SubaccountId }, + unauthorizedMarketErr, + ) +} + +func authorizeOrderCancellations(authorizedMarkets []string, subaccountID string, orders []*OrderData, unauthorizedMarketErr string) error { + return AuthorizeOrders( + authorizedMarkets, + subaccountID, + orders, + func(order *OrderData) string { return order.MarketId }, + func(order *OrderData) string { return order.SubaccountId }, + unauthorizedMarketErr, + ) +} + +func authorizeDerivativeOrders(authorizedMarkets []string, subaccountID string, orders []*DerivativeOrder, unauthorizedMarketErr string) error { + return AuthorizeOrders( + authorizedMarkets, + subaccountID, + orders, + func(order *DerivativeOrder) string { return order.MarketId }, + func(order *DerivativeOrder) string { return order.OrderInfo.SubaccountId }, + unauthorizedMarketErr, + ) +} + +func authorizeCancelAll(authorizedMarkets []string, authzSubaccountID, requestSubaccountID string, marketIDs []string, unauthorizedMarketErr string) error { + return AuthorizeCancelAll(authorizedMarkets, authzSubaccountID, requestSubaccountID, marketIDs, unauthorizedMarketErr) +} + +func (a BatchUpdateOrdersAuthz) authorizeSpotOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeSpotOrders( + a.SpotMarkets, + a.SubaccountId, + ordersToUpdate.SpotOrdersToCreate, + "requested spot market to create orders is unauthorized", + ) +} + +func (a BatchUpdateOrdersAuthz) authorizeSpotOrdersToCancel(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeOrderCancellations( + a.SpotMarkets, + a.SubaccountId, + ordersToUpdate.SpotOrdersToCancel, + "requested spot market to cancel orders is unauthorized", + ) +} + +func (a BatchUpdateOrdersAuthz) authorizeSpotMarketIDsToCancelAll(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeCancelAll( + a.SpotMarkets, + a.SubaccountId, + ordersToUpdate.SubaccountId, + ordersToUpdate.SpotMarketIdsToCancelAll, + "requested spot market to cancel all orders is unauthorized", + ) +} + +func (a BatchUpdateOrdersAuthz) authorizeDerivativeOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeDerivativeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.DerivativeOrdersToCreate, + "requested derivative market to create orders is unauthorized", + ) +} + +func (a BatchUpdateOrdersAuthz) authorizeDerivativeOrdersToCancel(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeOrderCancellations( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.DerivativeOrdersToCancel, + "requested derivative market to cancel orders is unauthorized", + ) +} + +func (a BatchUpdateOrdersAuthz) authorizeDerivativeMarketIDsToCancelAll(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeCancelAll( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.SubaccountId, + ordersToUpdate.DerivativeMarketIdsToCancelAll, + "requested derivative market to cancel all orders is unauthorized", + ) +} + +// BatchUpdateOrdersAuthz only carries spot and derivative allowlists, so +// binary options share the derivative market authorization set. +func (a BatchUpdateOrdersAuthz) authorizeBinaryOptionsOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeDerivativeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.BinaryOptionsOrdersToCreate, + "requested binary options market to create orders is unauthorized", + ) +} + +func (a BatchUpdateOrdersAuthz) authorizeBinaryOptionsOrdersToCancel(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeOrderCancellations( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.BinaryOptionsOrdersToCancel, + "requested binary options market to cancel orders is unauthorized", + ) +} + +func (a BatchUpdateOrdersAuthz) authorizeBinaryOptionsMarketIDsToCancelAll(ordersToUpdate *MsgBatchUpdateOrders) error { + return authorizeCancelAll( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.SubaccountId, + ordersToUpdate.BinaryOptionsMarketIdsToCancelAll, + "requested binary options market to cancel all orders is unauthorized", + ) +} diff --git a/chain/exchange/types/common_utils.go b/chain/exchange/types/common_utils.go index 3e3fc118..5db25359 100644 --- a/chain/exchange/types/common_utils.go +++ b/chain/exchange/types/common_utils.go @@ -42,20 +42,13 @@ var ZeroSubaccountID = common.HexToHash("0x0000000000000000000000000000000000000 // inj1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqe2hm49 var TempRewardsSenderAddress = sdk.AccAddress(common.HexToAddress(ZeroSubaccountID.Hex()).Bytes()) -// inj1zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3t5qxqh -var AuctionFeesAddress = sdk.AccAddress(common.HexToAddress(AuctionSubaccountID.Hex()).Bytes()) +// ExchangeAuctionFeesAddress is the bank address (inj1zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3t5qxqh) used for auction fees from the exchange module. +// Kept for backward compatibility with external senders (e.g. smart contracts) that already send funds here. +// New code should use auctiontypes.AuctionFeesSubaccountAddress. +var ExchangeAuctionFeesAddress = sdk.AccAddress(common.HexToAddress(AuctionSubaccountID.Hex()).Bytes()) var hexRegex = regexp.MustCompile("^(0x)?[0-9a-fA-F]+$") -func StringInSlice(a string, list *[]string) bool { - for _, b := range *list { - if b == a { - return true - } - } - return false -} - func IsDefaultSubaccountID(subaccountID common.Hash) bool { // empty 12 bytes emptyBytes := make([]byte, common.HashLength-common.AddressLength) diff --git a/chain/exchange/types/errors.go b/chain/exchange/types/errors.go index 6697044b..d3ade55e 100644 --- a/chain/exchange/types/errors.go +++ b/chain/exchange/types/errors.go @@ -6,26 +6,27 @@ import ( ) var ( - ErrOrderInvalid = errors.Register(ModuleName, 1, "failed to validate order") - ErrSpotMarketNotFound = errors.Register(ModuleName, 2, "spot market not found") - ErrSpotMarketExists = errors.Register(ModuleName, 3, "spot market exists") - ErrBadField = errors.Register(ModuleName, 4, "struct field error") - ErrMarketInvalid = errors.Register(ModuleName, 5, "failed to validate market") - ErrInsufficientDeposit = errors.Register(ModuleName, 6, "subaccount has insufficient deposits") - ErrUnrecognizedOrderType = errors.Register(ModuleName, 7, "unrecognized order type") - ErrInsufficientPositionQuantity = errors.Register(ModuleName, 8, "position quantity insufficient for order") - ErrOrderHashInvalid = errors.Register(ModuleName, 9, "order hash is not valid") - ErrBadSubaccountID = errors.Register(ModuleName, 10, "subaccount id is not valid") - ErrInvalidTicker = errors.Register(ModuleName, 11, "invalid ticker") - ErrInvalidBaseDenom = errors.Register(ModuleName, 12, "invalid base denom") - ErrInvalidQuoteDenom = errors.Register(ModuleName, 13, "invalid quote denom") - ErrInvalidOracle = errors.Register(ModuleName, 14, "invalid oracle") - ErrInvalidExpiry = errors.Register(ModuleName, 15, "invalid expiry") - ErrInvalidPrice = errors.Register(ModuleName, 16, "invalid price") - ErrInvalidQuantity = errors.Register(ModuleName, 17, "invalid quantity") - ErrUnsupportedOracleType = errors.Register(ModuleName, 18, "unsupported oracle type") - ErrOrderDoesntExist = errors.Register(ModuleName, 19, "order doesnt exist") - ErrOrderbookFillInvalid = errors.Register(ModuleName, 20, "spot limit orderbook fill invalid") + ErrOrderInvalid = errors.Register(ModuleName, 1, "failed to validate order") + ErrSpotMarketNotFound = errors.Register(ModuleName, 2, "spot market not found") + ErrSpotMarketExists = errors.Register(ModuleName, 3, "spot market exists") + ErrBadField = errors.Register(ModuleName, 4, "struct field error") + ErrMarketInvalid = errors.Register(ModuleName, 5, "failed to validate market") + ErrInsufficientDeposit = errors.Register(ModuleName, 6, "subaccount has insufficient deposits") + ErrUnrecognizedOrderType = errors.Register(ModuleName, 7, "unrecognized order type") + ErrInsufficientPositionQuantity = errors.Register(ModuleName, 8, "position quantity insufficient for order") + ErrOrderHashInvalid = errors.Register(ModuleName, 9, "order hash is not valid") + ErrBadSubaccountID = errors.Register(ModuleName, 10, "subaccount id is not valid") + ErrInvalidTicker = errors.Register(ModuleName, 11, "invalid ticker") + ErrInvalidBaseDenom = errors.Register(ModuleName, 12, "invalid base denom") + ErrInvalidQuoteDenom = errors.Register(ModuleName, 13, "invalid quote denom") + ErrInvalidOracle = errors.Register(ModuleName, 14, "invalid oracle") + ErrInvalidExpiry = errors.Register(ModuleName, 15, "invalid expiry") + ErrInvalidPrice = errors.Register(ModuleName, 16, "invalid price") + ErrInvalidQuantity = errors.Register(ModuleName, 17, "invalid quantity") + ErrUnsupportedOracleType = errors.Register(ModuleName, 18, "unsupported oracle type") + ErrOrderDoesntExist = errors.Register(ModuleName, 19, "order doesnt exist") + // ErrOrderbookFillInvalid is not used anymore + // ErrOrderbookFillInvalid = errors.Register(ModuleName, 20, "spot limit orderbook fill invalid") ErrPerpetualMarketExists = errors.Register(ModuleName, 21, "perpetual market exists") ErrExpiryFuturesMarketExists = errors.Register(ModuleName, 22, "expiry futures market exists") ErrExpiryFuturesMarketExpired = errors.Register(ModuleName, 23, "expiry futures market expired") @@ -118,5 +119,5 @@ var ( ErrOffsettingSubaccountIDsEmpty = errors.Register(ModuleName, 110, "offsetting subaccount IDs cannot be empty") ErrInvalidOpenNotionalCap = errors.Register(ModuleName, 111, "invalid open notional cap") ErrOpenNotionalCapBreached = errors.Register(ModuleName, 112, "open notional cap breached") - ErrNoOffsettingPositionsFound = errors.Register(ModuleName, 113, "no valid offsetting positions found") + ErrNoOffsettingPositionsFound = errors.Register(ModuleName, 113, "no valid offsetting positions found") ) diff --git a/chain/exchange/types/exchange.pb.go b/chain/exchange/types/exchange.pb.go index 3ad2d6b3..b8411b03 100644 --- a/chain/exchange/types/exchange.pb.go +++ b/chain/exchange/types/exchange.pb.go @@ -470,8 +470,10 @@ type Params struct { MarginDecreasePriceTimestampThresholdSeconds int64 `protobuf:"varint,26,opt,name=margin_decrease_price_timestamp_threshold_seconds,json=marginDecreasePriceTimestampThresholdSeconds,proto3" json:"margin_decrease_price_timestamp_threshold_seconds,omitempty"` // List of addresses that are allowed to perform exchange admin operations ExchangeAdmins []string `protobuf:"bytes,27,rep,name=exchange_admins,json=exchangeAdmins,proto3" json:"exchange_admins,omitempty"` - // inj_auction_max_cap defines the maximum cap for INJ sent to auction - InjAuctionMaxCap cosmossdk_io_math.Int `protobuf:"bytes,28,opt,name=inj_auction_max_cap,json=injAuctionMaxCap,proto3,customtype=cosmossdk.io/math.Int" json:"inj_auction_max_cap"` + // inj_auction_max_cap defines the maximum cap for INJ sent to auction. + // Deprecated: the cap is now driven by the auction module's InjBasketMaxCap; + // this field is ignored. + InjAuctionMaxCap cosmossdk_io_math.Int `protobuf:"bytes,28,opt,name=inj_auction_max_cap,json=injAuctionMaxCap,proto3,customtype=cosmossdk.io/math.Int" json:"inj_auction_max_cap"` // Deprecated: Do not use. // fixed_gas_enabled indicates if msg server will consume fixed gas amount for // certain msg types FixedGasEnabled bool `protobuf:"varint,29,opt,name=fixed_gas_enabled,json=fixedGasEnabled,proto3" json:"fixed_gas_enabled,omitempty"` @@ -3615,301 +3617,302 @@ func init() { } var fileDescriptor_2116e2804e9c53f9 = []byte{ - // 4704 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0xeb, 0x6f, 0x24, 0xd9, - 0x55, 0x9f, 0xea, 0xf6, 0xa3, 0xfb, 0xb8, 0xbb, 0xdd, 0x2e, 0x7b, 0xec, 0xb6, 0x3d, 0x63, 0xf7, - 0xf6, 0xec, 0x64, 0x67, 0x67, 0x77, 0xed, 0x9d, 0x09, 0x9b, 0xec, 0x4e, 0x14, 0x65, 0xdb, 0xaf, - 0x99, 0x66, 0xfd, 0x4a, 0xb5, 0xbd, 0xb0, 0x89, 0x92, 0xd2, 0x75, 0xd5, 0xb5, 0xfb, 0xae, 0xeb, - 0xd1, 0x53, 0xb7, 0xda, 0x63, 0x2f, 0x42, 0x42, 0x68, 0x85, 0x58, 0x03, 0x22, 0x7c, 0x40, 0x48, - 0x48, 0x83, 0xc2, 0x07, 0x84, 0xe0, 0x53, 0xc4, 0x27, 0x24, 0xf8, 0x80, 0x84, 0x20, 0xf9, 0x10, - 0xa4, 0x7c, 0x40, 0x08, 0x81, 0x14, 0xd0, 0x2e, 0x52, 0x10, 0x7f, 0x03, 0x8a, 0xd0, 0x7d, 0xd4, - 0xa3, 0x1f, 0x6e, 0x77, 0x79, 0xbc, 0x10, 0xe0, 0xcb, 0x4c, 0xdf, 0xc7, 0xf9, 0x9d, 0x73, 0xcf, - 0x3d, 0xf7, 0x9c, 0x73, 0x1f, 0x65, 0x78, 0x95, 0x38, 0x1f, 0x62, 0xc3, 0x27, 0x27, 0x78, 0x19, - 0x9f, 0x1a, 0x0d, 0xe4, 0x1c, 0xe1, 0xe5, 0x93, 0x07, 0x07, 0xd8, 0x47, 0x0f, 0xc2, 0x8a, 0xa5, - 0xa6, 0xe7, 0xfa, 0xae, 0x3a, 0x17, 0x76, 0x5d, 0x0a, 0x5b, 0x64, 0xd7, 0xb9, 0xa9, 0x23, 0xf7, - 0xc8, 0xe5, 0xdd, 0x96, 0xd9, 0x2f, 0x41, 0x31, 0xb7, 0x60, 0xb8, 0xd4, 0x76, 0xe9, 0xf2, 0x01, - 0xa2, 0x11, 0xaa, 0xe1, 0x12, 0x47, 0xb6, 0xdf, 0x8d, 0x98, 0xbb, 0x1e, 0x32, 0xac, 0xa8, 0x93, - 0x28, 0xca, 0x6e, 0x13, 0xc8, 0x26, 0x8e, 0xbb, 0xcc, 0xff, 0x15, 0x55, 0x95, 0x7f, 0x4e, 0xc1, - 0xf8, 0x4e, 0x13, 0x3b, 0xdb, 0xae, 0x4f, 0x5c, 0x07, 0x59, 0xab, 0xa8, 0xa9, 0x9e, 0x2b, 0x90, - 0x69, 0x39, 0x06, 0x6a, 0x36, 0xb1, 0x59, 0x52, 0xca, 0xca, 0xbd, 0xb1, 0x87, 0x5f, 0x5c, 0xba, - 0x58, 0xe6, 0xa5, 0x0e, 0xfa, 0x7d, 0x49, 0xba, 0xf2, 0xe5, 0x3f, 0xfb, 0xc9, 0xf7, 0xee, 0x3f, - 0x4c, 0x4e, 0xf8, 0xe4, 0x86, 0x16, 0xf2, 0x57, 0x7f, 0x55, 0x81, 0x11, 0x29, 0x4a, 0x8a, 0x8b, - 0xf2, 0x20, 0x81, 0x28, 0xab, 0x42, 0x90, 0xb7, 0x98, 0x20, 0x6f, 0x26, 0x25, 0x7b, 0x72, 0x43, - 0x93, 0x9c, 0x1f, 0x2d, 0x9f, 0xff, 0xe4, 0x7b, 0xf7, 0xef, 0x0f, 0x0e, 0xb0, 0x32, 0x0c, 0x69, - 0x03, 0x35, 0x2b, 0x1a, 0xcc, 0x5c, 0x30, 0xc6, 0x47, 0x5f, 0x3e, 0xbf, 0x9a, 0x72, 0x2a, 0x9f, - 0x28, 0x70, 0xb3, 0xa7, 0xbc, 0xea, 0x3b, 0x30, 0x7c, 0x82, 0xac, 0x16, 0xe6, 0x73, 0x96, 0x5d, - 0xb9, 0xf3, 0x83, 0x1f, 0x2f, 0xde, 0xf8, 0xa7, 0x1f, 0x2f, 0xce, 0x0b, 0xe3, 0xa1, 0xe6, 0xf1, - 0x12, 0x71, 0x97, 0x6d, 0xe4, 0x37, 0x96, 0x36, 0xf1, 0x11, 0x32, 0xce, 0xd6, 0xb0, 0xa1, 0x09, - 0x8a, 0x47, 0x6f, 0x9d, 0x5f, 0x45, 0x43, 0x95, 0x4f, 0xa6, 0x61, 0x64, 0x17, 0x79, 0xc8, 0xa6, - 0x2a, 0x86, 0x45, 0xda, 0x74, 0x7d, 0xdd, 0x46, 0xde, 0x31, 0xf6, 0x75, 0xe2, 0x50, 0x1f, 0x39, - 0xbe, 0x6e, 0x11, 0xea, 0x13, 0xe7, 0x48, 0x3f, 0xc4, 0x58, 0x9a, 0xd2, 0xec, 0x92, 0x90, 0x67, - 0x89, 0x19, 0x73, 0x88, 0xbf, 0xea, 0x12, 0x67, 0x65, 0x88, 0x49, 0xac, 0xcd, 0x33, 0x9c, 0x2d, - 0x0e, 0x53, 0x13, 0x28, 0x9b, 0x02, 0x64, 0x03, 0x63, 0xf5, 0x29, 0xdc, 0x35, 0xb1, 0x47, 0x4e, - 0x10, 0x13, 0xb3, 0x1f, 0xb3, 0xd4, 0x60, 0xcc, 0x5e, 0x8a, 0xd0, 0x2e, 0x62, 0x89, 0x60, 0xde, - 0xc4, 0x87, 0xa8, 0x65, 0xf9, 0xba, 0x1c, 0xe1, 0x31, 0xf6, 0x18, 0x0f, 0xdd, 0x43, 0x3e, 0x2e, - 0xa5, 0x07, 0x57, 0xf6, 0x8c, 0xc4, 0xa9, 0xf3, 0x01, 0x1e, 0x63, 0x6f, 0x03, 0x63, 0x0d, 0xf9, - 0xdd, 0x2c, 0xfc, 0x76, 0x16, 0x43, 0x57, 0x63, 0xb1, 0x17, 0x67, 0x61, 0xc3, 0x4b, 0x01, 0x8b, - 0x36, 0x05, 0xb6, 0x31, 0x1a, 0x1e, 0x9c, 0xd1, 0x6d, 0x89, 0xb6, 0x16, 0xd3, 0xdf, 0xa5, 0xec, - 0x3a, 0xc6, 0x35, 0xf2, 0x22, 0xec, 0xda, 0x46, 0x67, 0xc2, 0xad, 0x80, 0x1d, 0x71, 0x88, 0x4f, - 0x90, 0xc5, 0x6c, 0xe3, 0x88, 0x38, 0x8c, 0x11, 0x71, 0x4b, 0xa3, 0x83, 0x73, 0x9a, 0x95, 0x40, - 0x35, 0x81, 0xb3, 0xc5, 0x61, 0x34, 0x86, 0xa2, 0x5a, 0x50, 0x0e, 0xb8, 0xd8, 0x88, 0x38, 0x3e, - 0x76, 0x90, 0x63, 0xe0, 0x76, 0x4e, 0x99, 0xe4, 0x63, 0xda, 0x8a, 0xb0, 0xe2, 0xdc, 0xde, 0x86, - 0x52, 0xc0, 0xed, 0xb0, 0xe5, 0x98, 0xcc, 0xb0, 0x59, 0x3f, 0xef, 0x04, 0x59, 0xa5, 0x6c, 0x59, - 0xb9, 0x97, 0xd6, 0xa6, 0x65, 0xfb, 0x86, 0x68, 0xae, 0xc9, 0x56, 0xf5, 0x55, 0x28, 0x06, 0x14, - 0x76, 0xcb, 0xf2, 0x49, 0xd3, 0xc2, 0x25, 0xe0, 0x14, 0xe3, 0xb2, 0x7e, 0x4b, 0x56, 0xab, 0xbf, - 0x08, 0xd3, 0x1e, 0xb6, 0xd0, 0x99, 0x9c, 0x16, 0xda, 0x40, 0x9e, 0x9c, 0x9c, 0xb1, 0xc1, 0x07, - 0x32, 0x29, 0x21, 0x36, 0x30, 0xae, 0x33, 0x00, 0x3e, 0x25, 0x04, 0x16, 0x03, 0xf1, 0x1b, 0x6e, - 0xcb, 0xb3, 0xce, 0xc2, 0x51, 0x30, 0x78, 0xdd, 0x40, 0xcd, 0x52, 0x6e, 0x70, 0x16, 0xc1, 0xfa, - 0x78, 0xc2, 0xa1, 0xe4, 0x80, 0x19, 0x1f, 0x16, 0xb0, 0x62, 0xb3, 0x2f, 0x59, 0x71, 0x45, 0x61, - 0xea, 0x8b, 0xa1, 0xe4, 0x93, 0xcf, 0xbe, 0xe0, 0x53, 0x93, 0x30, 0x7c, 0x40, 0x6b, 0xb0, 0x68, - 0xa3, 0xd3, 0xb8, 0x39, 0xbb, 0x9e, 0x89, 0x3d, 0x9d, 0x12, 0x13, 0xeb, 0x86, 0xdb, 0x72, 0xfc, - 0x52, 0xa1, 0xac, 0xdc, 0xcb, 0x6b, 0xf3, 0x36, 0x3a, 0x8d, 0xec, 0x74, 0x87, 0x75, 0xaa, 0x13, - 0x13, 0xaf, 0xb2, 0x2e, 0x2a, 0x85, 0x57, 0x88, 0xf3, 0xa1, 0xee, 0xe1, 0x67, 0xc8, 0x33, 0x75, - 0xca, 0x56, 0x84, 0xa9, 0x7b, 0xf8, 0x69, 0x8b, 0x78, 0xd8, 0xc6, 0x8e, 0xaf, 0xfb, 0x0d, 0x0f, - 0xd3, 0x86, 0x6b, 0x99, 0xa5, 0x71, 0x2e, 0xf6, 0x6d, 0x29, 0xf6, 0xcd, 0x6e, 0xb1, 0x6b, 0x8e, - 0xaf, 0xdd, 0x21, 0xce, 0x87, 0x1a, 0x07, 0xab, 0x73, 0x2c, 0x2d, 0x82, 0xda, 0x0b, 0x90, 0xd4, - 0xc7, 0x50, 0xf6, 0x3d, 0x24, 0x94, 0xcf, 0xfb, 0x52, 0xfd, 0x04, 0x0b, 0x5f, 0x69, 0xb6, 0xb8, - 0xdd, 0x3a, 0xa5, 0x22, 0x37, 0x90, 0xdb, 0xb2, 0x9f, 0x80, 0xa4, 0xef, 0x8b, 0x5e, 0x6b, 0xb2, - 0x13, 0xd3, 0xb4, 0x45, 0x9e, 0xb6, 0x88, 0x89, 0x7c, 0xd7, 0x0b, 0x07, 0x11, 0x19, 0xcd, 0x44, - 0x02, 0x4d, 0x47, 0x40, 0x52, 0xfe, 0xd0, 0x74, 0x4e, 0xe1, 0xd5, 0x03, 0xe2, 0x20, 0xef, 0x4c, - 0x77, 0x9b, 0x8c, 0x2d, 0xed, 0xe7, 0xe8, 0xd5, 0xc1, 0x1c, 0xfd, 0xcb, 0x02, 0x71, 0x47, 0x00, - 0x5e, 0xe4, 0xeb, 0x7f, 0x45, 0x81, 0x32, 0xf2, 0x5d, 0x9b, 0x18, 0x01, 0x4b, 0x31, 0xc7, 0xc8, - 0x30, 0x30, 0xa5, 0xba, 0x85, 0x4f, 0xb0, 0x55, 0x9a, 0x2c, 0x2b, 0xf7, 0x0a, 0x0f, 0xdf, 0xee, - 0x97, 0x87, 0x54, 0x39, 0x86, 0xe0, 0xc2, 0x0d, 0xa0, 0xca, 0x01, 0x36, 0x19, 0xbd, 0x76, 0x0b, - 0xf5, 0x69, 0x55, 0x4f, 0xe1, 0x15, 0x1e, 0x03, 0x7a, 0x89, 0xc1, 0x96, 0xa8, 0x5c, 0xd1, 0x04, - 0x7b, 0xa5, 0xa9, 0xc1, 0xb5, 0x5d, 0x61, 0x98, 0x5d, 0x52, 0x6d, 0x60, 0xbc, 0x15, 0xc2, 0xa9, - 0x1f, 0x2b, 0xf0, 0x46, 0xcc, 0xba, 0x07, 0x10, 0xe0, 0xe6, 0xe0, 0x02, 0xdc, 0x8b, 0x90, 0x2f, - 0x11, 0xe3, 0x37, 0x14, 0x78, 0xd0, 0x31, 0xfd, 0x03, 0x88, 0x32, 0x3d, 0xb8, 0x28, 0xaf, 0xb5, - 0x99, 0xc2, 0x25, 0xd2, 0x7c, 0x1b, 0x66, 0x6d, 0xe2, 0x10, 0x1b, 0x59, 0x3a, 0xcf, 0x98, 0x0d, - 0xd7, 0x8a, 0x02, 0xd8, 0xcc, 0xe0, 0x4c, 0xa7, 0x25, 0xca, 0xae, 0x04, 0x09, 0x22, 0xd7, 0x37, - 0xe1, 0x35, 0x42, 0x43, 0xc3, 0xee, 0xce, 0x6d, 0x2c, 0xd4, 0x72, 0x8c, 0x86, 0x8e, 0x1d, 0x74, - 0x60, 0x61, 0xb3, 0x54, 0x2a, 0x2b, 0xf7, 0x32, 0xda, 0x17, 0x08, 0x95, 0xb6, 0xbb, 0xd6, 0x91, - 0xbe, 0x6c, 0xf2, 0xee, 0xeb, 0xa2, 0x37, 0x73, 0x59, 0x4d, 0x97, 0xfa, 0xba, 0xeb, 0x58, 0x67, - 0xba, 0xed, 0x9a, 0x58, 0x6f, 0x60, 0x72, 0xd4, 0x88, 0x3b, 0x99, 0x59, 0xbe, 0xec, 0xe7, 0x59, - 0xb7, 0x1d, 0xc7, 0x3a, 0xdb, 0x72, 0x4d, 0xfc, 0x84, 0xf7, 0x89, 0xbc, 0xc7, 0x11, 0x3c, 0x90, - 0x21, 0xce, 0xc4, 0x86, 0x87, 0x11, 0xc5, 0x7a, 0xd3, 0x23, 0x06, 0xd6, 0x7d, 0x62, 0x63, 0xea, - 0x23, 0xbb, 0x19, 0xe1, 0xe9, 0x14, 0x1b, 0xae, 0x63, 0xd2, 0xd2, 0x1c, 0xc7, 0x7d, 0x5d, 0x10, - 0xae, 0x49, 0xba, 0x5d, 0x46, 0xb6, 0x17, 0x50, 0x85, 0x1c, 0xea, 0x82, 0x46, 0x7d, 0x05, 0xc6, - 0x83, 0x95, 0xa4, 0x23, 0xd3, 0x26, 0x0e, 0x2d, 0xcd, 0x97, 0xd3, 0xf7, 0xb2, 0x5a, 0x21, 0xa8, - 0xae, 0xf2, 0x5a, 0x75, 0x13, 0x26, 0x99, 0x13, 0x45, 0x2d, 0x83, 0x4d, 0xa1, 0xce, 0xdc, 0x32, - 0x8b, 0x27, 0xb7, 0x06, 0x71, 0x98, 0x45, 0xe2, 0x7c, 0x58, 0x15, 0x84, 0x5b, 0xe8, 0x94, 0x85, - 0x8f, 0xfb, 0x30, 0x71, 0x48, 0x4e, 0xb1, 0xa9, 0x1f, 0x21, 0x1a, 0x2a, 0xfa, 0x36, 0x57, 0xf4, - 0x38, 0x6f, 0x78, 0x8c, 0xa8, 0xd4, 0xe8, 0xa3, 0xd2, 0xbf, 0x7f, 0x77, 0x51, 0x61, 0xc9, 0x72, - 0x28, 0xe9, 0xb2, 0x48, 0x80, 0x2b, 0x1f, 0x2b, 0x30, 0x29, 0xe6, 0xa0, 0xdd, 0x80, 0xe6, 0x21, - 0x1b, 0x78, 0x2f, 0xb1, 0x9b, 0xca, 0x6a, 0x19, 0x51, 0x51, 0x33, 0xd5, 0x9f, 0x87, 0x42, 0x87, - 0x1d, 0xa7, 0x06, 0x37, 0xa9, 0xfc, 0x61, 0x9c, 0xd1, 0xa3, 0xa1, 0x5f, 0xff, 0xee, 0xe2, 0x8d, - 0xca, 0xf7, 0x01, 0x8a, 0x9d, 0x46, 0xa1, 0x4e, 0xc3, 0x88, 0x4f, 0x8c, 0x63, 0xec, 0x49, 0x01, - 0x64, 0x49, 0x5d, 0x84, 0x31, 0xb1, 0x41, 0xd4, 0x99, 0xdb, 0x14, 0xbc, 0x35, 0x10, 0x55, 0x2b, - 0x88, 0x62, 0xf5, 0x25, 0xc8, 0xc9, 0x0e, 0x4f, 0x5b, 0x6e, 0x90, 0xec, 0x6a, 0x92, 0xe8, 0xeb, - 0xac, 0x4a, 0x5d, 0x0f, 0x31, 0xfc, 0xb3, 0xa6, 0xc8, 0x55, 0x0b, 0x0f, 0x5f, 0x8e, 0x39, 0x47, - 0xb9, 0x05, 0x0d, 0x77, 0x12, 0xbc, 0xb8, 0x77, 0xd6, 0xc4, 0x01, 0x27, 0xf6, 0x5b, 0x5d, 0x82, - 0x49, 0x09, 0x43, 0x0d, 0x64, 0x61, 0xfd, 0x10, 0x19, 0xbe, 0xeb, 0xf1, 0x8c, 0x34, 0xaf, 0x4d, - 0x88, 0xa6, 0x3a, 0x6b, 0xd9, 0xe0, 0x0d, 0x4c, 0x74, 0x2e, 0x92, 0x6e, 0x62, 0xc7, 0xb5, 0x45, - 0x2a, 0xa9, 0x01, 0xaf, 0x5a, 0x63, 0x35, 0xed, 0x7a, 0x1f, 0xed, 0xd0, 0xfb, 0x3e, 0x4c, 0xf5, - 0xcc, 0x13, 0x13, 0x64, 0x6f, 0x2a, 0xe9, 0x4e, 0x10, 0xbf, 0x05, 0xa5, 0x0b, 0x13, 0xc3, 0x6c, - 0x12, 0x5f, 0xd1, 0x3b, 0x23, 0xac, 0x41, 0xa1, 0x23, 0x61, 0x87, 0xc1, 0x41, 0x73, 0x76, 0x3c, - 0x61, 0xae, 0x41, 0xa1, 0x23, 0x19, 0x4f, 0x90, 0xef, 0xe5, 0xfc, 0x38, 0xd4, 0xc5, 0x29, 0x64, - 0xee, 0x05, 0x53, 0xc8, 0x32, 0x8c, 0x11, 0xba, 0x8b, 0xbd, 0x26, 0xf6, 0x5b, 0xc8, 0xe2, 0x69, - 0x5c, 0x46, 0x8b, 0x57, 0xa9, 0xef, 0xc2, 0x08, 0xf5, 0x91, 0xdf, 0xa2, 0x3c, 0xf5, 0x2a, 0x3c, - 0xbc, 0xd7, 0x2f, 0x28, 0x8b, 0xc5, 0x50, 0xe7, 0xfd, 0x35, 0x49, 0xa7, 0x6a, 0x30, 0x69, 0x13, - 0x27, 0x74, 0x68, 0xc6, 0xb1, 0x4e, 0xc9, 0x47, 0x58, 0xe6, 0x5e, 0x03, 0x89, 0x5e, 0xb4, 0x89, - 0x23, 0x1d, 0x9b, 0x71, 0x5c, 0x27, 0x1f, 0x71, 0x8d, 0x30, 0xcc, 0xa7, 0x2d, 0xe4, 0xf8, 0xc4, - 0x3f, 0x8b, 0xc1, 0x16, 0x13, 0x68, 0xc4, 0x26, 0xce, 0xd7, 0x25, 0x42, 0x88, 0xbc, 0x01, 0x39, - 0x86, 0xec, 0xc8, 0x9d, 0x78, 0x92, 0x7c, 0x6b, 0xcc, 0x26, 0xe1, 0x0e, 0x5e, 0x9d, 0x82, 0x61, - 0xee, 0x60, 0x79, 0xf6, 0x94, 0xd5, 0x44, 0x41, 0x7d, 0x0d, 0x26, 0xf8, 0x0f, 0xbd, 0x89, 0x3d, - 0x9b, 0x50, 0xca, 0xc2, 0x23, 0xcf, 0x76, 0xf2, 0x5a, 0x91, 0x37, 0xec, 0x46, 0xf5, 0xea, 0x5d, - 0x28, 0x04, 0x0b, 0xd0, 0x60, 0x81, 0x8d, 0xf2, 0x74, 0x24, 0xaf, 0xe5, 0xe5, 0x1a, 0x14, 0x95, - 0x6a, 0x1d, 0x26, 0x3d, 0x6c, 0xb6, 0x3a, 0x57, 0x43, 0x82, 0xcc, 0x61, 0x42, 0xd0, 0xb7, 0xaf, - 0xb3, 0x09, 0xb7, 0x89, 0x23, 0x3d, 0x70, 0xef, 0x3f, 0xcd, 0x13, 0xc1, 0xd7, 0x12, 0x1c, 0x0f, - 0xc9, 0xd4, 0x70, 0xdc, 0x6d, 0xaf, 0x96, 0x9e, 0xf4, 0xa7, 0x19, 0x98, 0x5c, 0xe9, 0x4e, 0x1a, - 0x2f, 0x74, 0xa6, 0x77, 0x20, 0x1f, 0x78, 0xb0, 0x33, 0xfb, 0xc0, 0xb5, 0xa4, 0x3b, 0x95, 0x0e, - 0xb4, 0xce, 0xeb, 0x58, 0x88, 0x93, 0x9d, 0x9a, 0x9e, 0x7b, 0x42, 0x4c, 0xec, 0x49, 0x9f, 0x5a, - 0x10, 0xd5, 0xbb, 0xb2, 0xf6, 0x7f, 0xca, 0xad, 0x3e, 0x80, 0x29, 0x7c, 0xda, 0x24, 0x22, 0xdd, - 0x8f, 0x02, 0x3c, 0xf7, 0xaf, 0x69, 0x6d, 0x32, 0x6a, 0x0b, 0xa3, 0x38, 0x23, 0xa1, 0xd8, 0xf7, - 0x2d, 0xb9, 0x7d, 0x09, 0x49, 0x46, 0x05, 0x49, 0xd4, 0x16, 0x91, 0x84, 0xe6, 0x97, 0x89, 0x9b, - 0x5f, 0x87, 0x4b, 0xcf, 0xf6, 0x77, 0xe9, 0xd0, 0xe1, 0xd2, 0xbb, 0x9d, 0xe3, 0xd8, 0xf5, 0x39, - 0xc7, 0xdc, 0xf5, 0x3b, 0xc7, 0xfc, 0x0b, 0x3a, 0xc7, 0xff, 0x6f, 0xae, 0x6f, 0x1b, 0x8a, 0x31, - 0x33, 0xe3, 0x42, 0xc7, 0xdc, 0x9f, 0x72, 0x19, 0xe6, 0x78, 0x44, 0xcc, 0x25, 0xee, 0x72, 0xa5, - 0xea, 0x15, 0x5d, 0xe9, 0xe7, 0xe0, 0x34, 0xa5, 0x03, 0xfa, 0xb7, 0x14, 0xcc, 0xac, 0xb3, 0x05, - 0x77, 0xb6, 0xd1, 0xf2, 0x5b, 0x1e, 0x0e, 0x77, 0xad, 0x87, 0x6e, 0xff, 0xac, 0xf2, 0xa2, 0x45, - 0x9c, 0xba, 0x78, 0x11, 0xbf, 0x09, 0x53, 0xfe, 0x33, 0xd4, 0xd4, 0xa9, 0x8f, 0xbc, 0xf8, 0x22, - 0x4e, 0x73, 0x12, 0x95, 0xb5, 0xd5, 0x59, 0x53, 0x44, 0xf1, 0x0c, 0xbe, 0x10, 0x67, 0x12, 0x11, - 0x0b, 0x7b, 0x32, 0x5a, 0x76, 0xcb, 0xe2, 0x39, 0x68, 0x92, 0xe3, 0xcb, 0x4a, 0x4c, 0xb6, 0x80, - 0x25, 0x9f, 0xae, 0xd5, 0x10, 0xae, 0xa7, 0x21, 0x24, 0x38, 0xb8, 0xec, 0x34, 0x84, 0xca, 0xdf, - 0xa6, 0x60, 0x32, 0xcc, 0x28, 0x06, 0x55, 0xf1, 0x37, 0x60, 0xe6, 0xa2, 0x53, 0xad, 0x04, 0x19, - 0xfc, 0x54, 0xa3, 0xd7, 0x71, 0xd6, 0x3e, 0x4c, 0xf5, 0x3c, 0xc6, 0x4a, 0x70, 0xd2, 0xac, 0x36, - 0xba, 0xcf, 0xaf, 0x7e, 0x0e, 0xa6, 0x1d, 0x7c, 0x1a, 0x1d, 0x26, 0x46, 0x93, 0x3c, 0xc4, 0x27, - 0x79, 0x8a, 0xb5, 0x4a, 0x51, 0xa2, 0x69, 0x8e, 0x9d, 0x25, 0x86, 0xa7, 0x8f, 0xc3, 0x6d, 0x67, - 0x89, 0xc1, 0xb1, 0x63, 0xe5, 0x33, 0x05, 0xa6, 0x3b, 0x14, 0x29, 0xe1, 0x54, 0x0d, 0xd4, 0xc8, - 0x20, 0x02, 0x09, 0x92, 0xdc, 0x53, 0x4c, 0x44, 0xe4, 0x01, 0xe6, 0x36, 0x14, 0x63, 0x98, 0xc2, - 0x0e, 0x12, 0xe8, 0x7e, 0x3c, 0x22, 0x16, 0x0e, 0xe1, 0x2e, 0x14, 0x2c, 0x44, 0xbb, 0x8d, 0x3f, - 0xcf, 0x6a, 0x43, 0x85, 0x54, 0x7e, 0x4b, 0x81, 0x85, 0xce, 0x0d, 0x56, 0x3d, 0x34, 0xa9, 0xcb, - 0x2d, 0xa7, 0x97, 0xf9, 0xa6, 0x5e, 0xc0, 0x7c, 0xbf, 0x0a, 0x53, 0xdb, 0xbd, 0x26, 0xee, 0x2e, - 0x14, 0xf8, 0x74, 0x47, 0xc3, 0x51, 0xc4, 0x70, 0x58, 0x6d, 0x34, 0x9c, 0xff, 0x50, 0xa0, 0xb0, - 0x45, 0x4c, 0x8e, 0x55, 0x75, 0xcc, 0xbd, 0x9d, 0x15, 0xf5, 0x5d, 0xc8, 0xda, 0xc4, 0x94, 0xa2, - 0x29, 0x83, 0xbb, 0xd8, 0x8c, 0x2d, 0x71, 0x58, 0x00, 0x3d, 0x60, 0x66, 0x7b, 0xd0, 0x3a, 0xeb, - 0x1a, 0xe1, 0xa5, 0x30, 0x39, 0x46, 0xba, 0xd2, 0x3a, 0x13, 0x50, 0xef, 0xc1, 0x38, 0x87, 0xa2, - 0xd8, 0xb2, 0x24, 0x56, 0x7a, 0x70, 0xac, 0x3c, 0xa3, 0xad, 0x63, 0xcb, 0x12, 0xba, 0xfa, 0xf3, - 0x11, 0x80, 0x7a, 0x78, 0xbb, 0x74, 0x61, 0x26, 0x77, 0x1b, 0x80, 0xed, 0x87, 0x65, 0x1e, 0x22, - 0xd2, 0xb8, 0x2c, 0xab, 0x11, 0x69, 0x48, 0x47, 0x9e, 0x92, 0xee, 0xca, 0x53, 0xba, 0x53, 0x91, - 0xa1, 0xeb, 0x4b, 0x45, 0x86, 0xaf, 0x3f, 0x15, 0x19, 0x79, 0xc1, 0x54, 0xa4, 0xef, 0x56, 0x3b, - 0xca, 0x53, 0x32, 0xd7, 0x9b, 0xa7, 0x64, 0x3f, 0x9f, 0x3c, 0x05, 0xae, 0x79, 0x8b, 0x36, 0xf6, - 0xa2, 0x5b, 0xb4, 0xdc, 0xa5, 0x5b, 0xb4, 0xfc, 0x05, 0xd9, 0xc6, 0x1d, 0xc8, 0x4b, 0x3b, 0x96, - 0xc9, 0x86, 0xb8, 0x9f, 0xc8, 0x09, 0x53, 0x96, 0x1b, 0xb4, 0xee, 0x94, 0x64, 0xbc, 0x47, 0x4a, - 0x52, 0xf9, 0x23, 0x05, 0x46, 0xd7, 0x70, 0xd3, 0xa5, 0xc4, 0x57, 0x77, 0x61, 0x02, 0x9d, 0x20, - 0x62, 0xa1, 0x03, 0x7e, 0x72, 0x64, 0x21, 0xc7, 0x48, 0x74, 0xe9, 0x5c, 0x0c, 0xa9, 0x57, 0x04, - 0xb1, 0xfa, 0x04, 0xf2, 0xbe, 0xeb, 0x23, 0x2b, 0x44, 0x4b, 0x25, 0xb1, 0x72, 0x46, 0x29, 0x91, - 0x2a, 0xaf, 0xc3, 0x54, 0xbd, 0x75, 0x80, 0x0c, 0x7e, 0x21, 0xb3, 0xe7, 0x21, 0x13, 0x6f, 0xbb, - 0x8c, 0xc3, 0x14, 0x0c, 0x3b, 0x6e, 0x20, 0x67, 0x5e, 0x13, 0x05, 0x16, 0xb2, 0xb2, 0xfc, 0xd0, - 0x97, 0xfb, 0xed, 0x3b, 0x90, 0xa7, 0x21, 0x6d, 0xe4, 0xbb, 0x73, 0x51, 0x65, 0xcd, 0x64, 0x9d, - 0xf8, 0x5a, 0xc4, 0x06, 0x69, 0x12, 0xec, 0xf8, 0xc1, 0x36, 0xef, 0x10, 0x63, 0x2d, 0xa8, 0x53, - 0xdf, 0x81, 0xe1, 0x4e, 0x5f, 0x75, 0xf9, 0x55, 0x3c, 0xa7, 0x50, 0xbf, 0x06, 0x99, 0xc0, 0x2a, - 0x93, 0xb8, 0x8d, 0x90, 0x48, 0x2d, 0x42, 0xda, 0x20, 0xa6, 0xf0, 0x13, 0x1a, 0xfb, 0x59, 0xf9, - 0x38, 0x05, 0x59, 0xe6, 0xf6, 0xf8, 0x48, 0x2f, 0x3b, 0x90, 0x04, 0x71, 0xbc, 0x4e, 0x9c, 0x43, - 0x57, 0x5e, 0xa2, 0xdf, 0xed, 0xbb, 0xa5, 0x0e, 0xb4, 0x27, 0x37, 0xd3, 0x59, 0x37, 0x54, 0xe7, - 0x5a, 0x80, 0xc5, 0x77, 0xb0, 0x69, 0xbe, 0xfa, 0x2f, 0xc7, 0xe2, 0x5b, 0x58, 0x81, 0xc2, 0x77, - 0xb0, 0xcc, 0x34, 0x3c, 0x72, 0x74, 0x84, 0x3d, 0xe9, 0xfe, 0x87, 0x12, 0x84, 0x12, 0x49, 0x29, - 0xbc, 0xff, 0x0f, 0x53, 0x50, 0x60, 0x6a, 0xd8, 0x24, 0x36, 0x91, 0xba, 0x68, 0x1f, 0xae, 0x72, - 0x8d, 0xc3, 0x4d, 0x5d, 0x71, 0xb8, 0x5f, 0x83, 0xcc, 0x21, 0xb1, 0xf8, 0xe2, 0x48, 0x62, 0x3c, - 0x21, 0xd1, 0xf5, 0xe9, 0x8b, 0x85, 0x41, 0x31, 0xa0, 0x06, 0xa2, 0x0d, 0x6e, 0x4f, 0x39, 0x29, - 0xe9, 0x13, 0x44, 0x1b, 0x95, 0xbf, 0x4f, 0xc1, 0x78, 0x14, 0x4c, 0xaf, 0x5f, 0x9f, 0x1b, 0x90, - 0x93, 0xde, 0x40, 0xe7, 0x37, 0x15, 0x09, 0x5c, 0xc2, 0x98, 0x24, 0x7c, 0xe2, 0x5a, 0x66, 0xc7, - 0x30, 0xd2, 0x1d, 0xc3, 0xe8, 0x98, 0xb6, 0xa1, 0xeb, 0xb2, 0xd2, 0xe1, 0xab, 0x5a, 0xe9, 0xf7, - 0x53, 0x30, 0xde, 0x71, 0x7b, 0xfc, 0xbf, 0x6d, 0xc9, 0x7e, 0x05, 0x46, 0xc4, 0x61, 0x5f, 0x12, - 0x07, 0x26, 0x49, 0xae, 0x51, 0x93, 0xff, 0x99, 0x86, 0xf9, 0x28, 0x16, 0x70, 0x49, 0x0f, 0x5c, - 0xf7, 0x78, 0x0b, 0xfb, 0xc8, 0x44, 0x3e, 0x52, 0xdf, 0x81, 0xd9, 0x13, 0xe4, 0xb0, 0x75, 0xa3, - 0x5b, 0xcc, 0x25, 0xc8, 0x8b, 0x45, 0x71, 0x95, 0x2f, 0xc2, 0xc4, 0xb4, 0xec, 0x10, 0xb9, 0x0c, - 0x71, 0x8b, 0xff, 0x2e, 0xdc, 0x96, 0xa7, 0x9a, 0xfc, 0x6a, 0xad, 0x9b, 0x3c, 0xc5, 0xc9, 0x67, - 0x45, 0xa7, 0x1d, 0xc7, 0x3a, 0xeb, 0x44, 0x68, 0xc0, 0x02, 0x3a, 0x3a, 0xf2, 0xf0, 0x11, 0xdb, - 0x36, 0xc6, 0xb1, 0x42, 0xe7, 0x9f, 0x60, 0xf5, 0xcf, 0x87, 0x50, 0x5a, 0xc8, 0x30, 0x48, 0x4c, - 0x54, 0x04, 0x73, 0x11, 0xa7, 0x60, 0xc0, 0x57, 0x09, 0x31, 0xa5, 0x10, 0xe6, 0x7d, 0x81, 0x12, - 0xb2, 0x58, 0x87, 0xc5, 0x00, 0xd8, 0x70, 0x1d, 0x93, 0xc8, 0x53, 0xd9, 0xb8, 0x42, 0xc4, 0x89, - 0xe3, 0x2d, 0xd9, 0x6d, 0x35, 0xea, 0x15, 0xd3, 0xc9, 0x26, 0xdc, 0x89, 0x6b, 0xe2, 0x22, 0xa8, - 0x11, 0x0e, 0xb5, 0x18, 0xe9, 0xb6, 0x27, 0x5a, 0xe5, 0xaf, 0x15, 0x18, 0xef, 0x98, 0xfe, 0x28, - 0x2e, 0x2b, 0x2f, 0x14, 0x97, 0x53, 0x57, 0x89, 0xcb, 0x15, 0xc8, 0x11, 0x1a, 0xcd, 0x0f, 0x9f, - 0xdf, 0x8c, 0xd6, 0x56, 0x17, 0xc4, 0xee, 0xa1, 0x28, 0x76, 0x3f, 0x83, 0xc9, 0x8e, 0x41, 0xac, - 0x31, 0xdb, 0xad, 0xc2, 0x30, 0x57, 0x89, 0xf4, 0xb1, 0x7d, 0x4f, 0xbd, 0x3b, 0xe8, 0x35, 0x41, - 0xd9, 0xe1, 0x17, 0x53, 0x9d, 0xee, 0xfd, 0xb7, 0xd3, 0x30, 0x15, 0xf9, 0xa1, 0x9f, 0xe9, 0x98, - 0x19, 0xf9, 0x9b, 0x74, 0x72, 0x7f, 0x13, 0x0f, 0xb8, 0x43, 0xd7, 0x12, 0x70, 0x87, 0xaf, 0x27, - 0xe0, 0x8e, 0x74, 0xce, 0xc8, 0xef, 0xa6, 0xe1, 0x66, 0xe7, 0xc9, 0xc3, 0xff, 0xc9, 0x29, 0x59, - 0x83, 0x31, 0x79, 0x59, 0xc4, 0x03, 0x7f, 0x82, 0x59, 0x01, 0x41, 0xc7, 0xe3, 0xfe, 0x7f, 0xdb, - 0xbc, 0xfc, 0x4d, 0x0a, 0x32, 0xbb, 0x6c, 0x63, 0x44, 0x5c, 0x47, 0x9d, 0x86, 0x11, 0x42, 0x37, - 0x5d, 0x79, 0xba, 0x95, 0xd1, 0x64, 0xe9, 0xc5, 0xdd, 0xc7, 0x1a, 0x8c, 0x61, 0xc7, 0xf7, 0xce, - 0xf4, 0xc4, 0x1b, 0x0b, 0xe0, 0x74, 0x62, 0x28, 0x2f, 0x14, 0x9a, 0xbf, 0x05, 0xa5, 0xee, 0x53, - 0x3c, 0x9d, 0xa3, 0x27, 0x39, 0x96, 0x98, 0xee, 0x3a, 0xcb, 0x5b, 0x67, 0x10, 0x95, 0x1a, 0x4c, - 0xc5, 0x8c, 0xba, 0xe6, 0x98, 0xc4, 0x40, 0xbe, 0x7b, 0x49, 0xf6, 0x33, 0x05, 0xc3, 0x84, 0xae, - 0xb4, 0x84, 0x52, 0x33, 0x9a, 0x28, 0x54, 0xfe, 0x2e, 0x05, 0x19, 0xbe, 0xf9, 0xdb, 0x74, 0xdb, - 0x55, 0xaf, 0x5c, 0x45, 0xf5, 0x61, 0xd4, 0x48, 0x25, 0x8e, 0x1a, 0x5d, 0x5b, 0x4a, 0x91, 0x7f, - 0xb6, 0x6f, 0x29, 0xdf, 0x82, 0xf4, 0x21, 0x4e, 0xe4, 0x7d, 0x58, 0xff, 0x4b, 0xf2, 0x73, 0xf5, - 0x6d, 0xb8, 0xd9, 0xb6, 0x51, 0xd5, 0x91, 0x69, 0x7a, 0x98, 0x52, 0x61, 0xc0, 0x7c, 0xe1, 0x2b, - 0xda, 0x64, 0x7c, 0xdb, 0x5a, 0x15, 0x1d, 0x82, 0x28, 0x34, 0x1a, 0x45, 0xa1, 0xdf, 0x4f, 0x41, - 0x3e, 0x30, 0xf1, 0x35, 0x6c, 0xf9, 0x48, 0x9d, 0x81, 0x51, 0x42, 0x75, 0xab, 0xdb, 0xd0, 0x35, - 0x50, 0xf1, 0x29, 0x36, 0x5a, 0xfc, 0x5a, 0xe0, 0x2a, 0x26, 0x3f, 0x11, 0x92, 0x87, 0xf9, 0xc5, - 0x36, 0x14, 0x23, 0xcc, 0xe4, 0x7e, 0x65, 0x3c, 0x24, 0x16, 0x97, 0xc8, 0xea, 0x26, 0x44, 0x55, - 0x5d, 0xbb, 0xa4, 0x4b, 0xe1, 0x0a, 0x21, 0xad, 0xc8, 0x33, 0xff, 0x30, 0x0d, 0x6a, 0xec, 0x5d, - 0x72, 0x60, 0x76, 0x3d, 0x4f, 0x13, 0x3a, 0xa7, 0x7e, 0x17, 0x0a, 0x4d, 0xa9, 0x57, 0xdd, 0x64, - 0x8a, 0x95, 0x09, 0xfc, 0xab, 0xfd, 0x3c, 0x6e, 0xdb, 0x4c, 0x68, 0xf9, 0x66, 0xdb, 0xc4, 0x7c, - 0x05, 0x46, 0x9a, 0xe8, 0xcc, 0x6d, 0xf9, 0x89, 0x3c, 0xaf, 0x20, 0xf9, 0xd9, 0xb7, 0x44, 0x26, - 0x61, 0xd3, 0xb1, 0x92, 0x3c, 0xd4, 0x61, 0xfd, 0x2b, 0xbf, 0x04, 0x6a, 0x94, 0x06, 0x85, 0xce, - 0xfa, 0x5d, 0xc8, 0x04, 0xca, 0x93, 0x51, 0xf3, 0xe5, 0x41, 0xf4, 0xae, 0x85, 0x54, 0xdd, 0x93, - 0x9c, 0xea, 0x9e, 0xe4, 0xca, 0x33, 0x98, 0x88, 0x98, 0x07, 0x87, 0x68, 0x03, 0x99, 0xc7, 0x57, - 0x61, 0xd4, 0x14, 0xfd, 0xa5, 0x5d, 0xdc, 0xe9, 0x27, 0x9f, 0x84, 0xd6, 0x02, 0x9a, 0x4a, 0x13, - 0xf2, 0xb2, 0x6e, 0xbf, 0x69, 0x22, 0x9f, 0x9f, 0x82, 0x89, 0x43, 0x6b, 0xe1, 0x46, 0x45, 0x41, - 0xad, 0x41, 0x46, 0x52, 0xd0, 0x52, 0xaa, 0x9c, 0xbe, 0x37, 0xf6, 0xf0, 0x8d, 0xc1, 0xf2, 0xc9, - 0x80, 0x61, 0x48, 0x5e, 0xf9, 0xa1, 0x02, 0xc5, 0x5d, 0x97, 0x38, 0x3e, 0x8d, 0x3d, 0x81, 0xfb, - 0x26, 0xcc, 0x88, 0xf3, 0xf0, 0x26, 0x6f, 0x89, 0x3f, 0x77, 0x4b, 0xe0, 0x8f, 0x6f, 0x72, 0x8c, - 0x5e, 0xe0, 0xfe, 0x05, 0xe0, 0x09, 0x9c, 0xce, 0x4d, 0xbf, 0x17, 0x78, 0xe5, 0xa7, 0x29, 0x58, - 0xd8, 0x8b, 0xbf, 0x88, 0x5e, 0x45, 0x76, 0x13, 0x91, 0x23, 0x67, 0xc5, 0x75, 0xa9, 0xb8, 0xec, - 0x79, 0x0b, 0x66, 0x0e, 0x58, 0x01, 0x9b, 0x7a, 0xdb, 0x07, 0x30, 0x26, 0x2d, 0x29, 0xfc, 0xf1, - 0xe2, 0x94, 0x6c, 0x8e, 0xce, 0x4a, 0x6a, 0x26, 0x55, 0x3f, 0x84, 0x99, 0x78, 0xf7, 0x48, 0xea, - 0x60, 0x0a, 0x5e, 0xef, 0x6f, 0x89, 0xed, 0x82, 0xca, 0x34, 0xee, 0x66, 0xf4, 0xe9, 0x4c, 0xd4, - 0x46, 0xd5, 0x2a, 0xdc, 0x0e, 0x44, 0xec, 0xf1, 0xf1, 0x8c, 0x49, 0x4b, 0x69, 0x2e, 0xe8, 0x9c, - 0xec, 0xd4, 0x99, 0x63, 0x32, 0x71, 0x4f, 0xe0, 0x76, 0x37, 0x69, 0x5c, 0xe8, 0xa1, 0x2b, 0x0b, - 0x3d, 0xdf, 0xf9, 0x09, 0x4e, 0x4c, 0xf4, 0xca, 0x5f, 0x2a, 0xa0, 0x06, 0x3a, 0x17, 0x33, 0xb0, - 0xeb, 0x8a, 0x67, 0x34, 0x9d, 0x37, 0xd5, 0xe2, 0x76, 0xab, 0x40, 0xdb, 0x6f, 0xa9, 0x7f, 0x19, - 0xa6, 0xc4, 0xeb, 0x50, 0x01, 0x11, 0x3c, 0x7f, 0x97, 0x3a, 0xee, 0xf3, 0x6a, 0xfc, 0x4d, 0x26, - 0xdb, 0x9f, 0xfe, 0xcb, 0xe2, 0xbd, 0x23, 0xe2, 0x37, 0x5a, 0x07, 0x4b, 0x86, 0x6b, 0x2f, 0xcb, - 0xaf, 0xf0, 0xc4, 0x7f, 0x6f, 0x50, 0xf3, 0x78, 0x99, 0xe5, 0xc8, 0x94, 0x13, 0x50, 0x4d, 0xb5, - 0xd1, 0x69, 0xbb, 0xa8, 0xb4, 0xf2, 0x27, 0x29, 0x98, 0xed, 0x69, 0x3f, 0xdc, 0x74, 0x1e, 0xc1, - 0x6c, 0x28, 0x58, 0xf0, 0x0e, 0x3f, 0x7c, 0x40, 0x2b, 0xc6, 0x33, 0x13, 0x74, 0x08, 0x9e, 0xe0, - 0x07, 0x6f, 0x65, 0x5f, 0x82, 0x5c, 0xec, 0x12, 0x4a, 0x0c, 0x28, 0xab, 0x8d, 0x45, 0xb7, 0x50, - 0x54, 0x6d, 0xc1, 0x6c, 0xfb, 0xab, 0x7f, 0x9d, 0x4f, 0xb0, 0xd8, 0x24, 0xa4, 0xb9, 0x3b, 0x79, - 0xd4, 0x6f, 0xbe, 0xfa, 0x1b, 0xbe, 0x36, 0xdd, 0xf6, 0xa9, 0x40, 0xb4, 0x20, 0xbe, 0x04, 0x33, - 0x26, 0xa1, 0x4f, 0x5b, 0xc8, 0x22, 0x87, 0x04, 0x9b, 0x71, 0x3b, 0x1b, 0xe2, 0x42, 0xde, 0x8c, - 0x37, 0x87, 0x26, 0x56, 0xf9, 0xab, 0x14, 0x4c, 0x6e, 0x60, 0xbc, 0x46, 0xa8, 0x38, 0xbb, 0x27, - 0x72, 0x43, 0x52, 0x87, 0x49, 0xe1, 0x3d, 0x4c, 0xd9, 0x22, 0x2e, 0xad, 0x92, 0x5c, 0x1e, 0x73, - 0xfa, 0x00, 0x98, 0x5f, 0x59, 0xd5, 0x61, 0xd2, 0xef, 0x01, 0x9a, 0x24, 0x4d, 0xf1, 0xbb, 0x40, - 0x57, 0x20, 0x2f, 0x3f, 0xe8, 0x40, 0x36, 0x3f, 0xa9, 0x48, 0x0f, 0xf2, 0x20, 0x39, 0x27, 0x68, - 0xaa, 0x9c, 0x84, 0x85, 0xef, 0x13, 0xd7, 0x6a, 0xd9, 0x89, 0x82, 0xb0, 0x24, 0xa9, 0xfc, 0x66, - 0xbb, 0x0a, 0xeb, 0x46, 0x03, 0x9b, 0x2d, 0x8b, 0x3f, 0xe3, 0x3d, 0x68, 0x19, 0x6c, 0x16, 0xa2, - 0xc3, 0xad, 0x21, 0x6d, 0x4c, 0xd4, 0x89, 0xb3, 0x97, 0x57, 0x60, 0x5c, 0x76, 0x09, 0xbf, 0x08, - 0x11, 0xcf, 0x45, 0x0a, 0xa2, 0x3a, 0xfc, 0x04, 0xa4, 0xd3, 0xf0, 0xd2, 0xdd, 0x86, 0xb7, 0x0d, - 0xe0, 0x13, 0xb9, 0x1b, 0x0d, 0x3c, 0xc3, 0x72, 0x3f, 0x4b, 0xeb, 0x31, 0xed, 0x5a, 0xd6, 0x97, - 0xbf, 0x68, 0x3f, 0x8b, 0x1a, 0xee, 0x67, 0x51, 0x5b, 0xa0, 0x76, 0x20, 0xef, 0xed, 0x6d, 0xaa, - 0x2a, 0x0c, 0xf9, 0x41, 0xe8, 0x19, 0xd2, 0xf8, 0x6f, 0x16, 0x8c, 0x7d, 0xdf, 0xea, 0x7a, 0x2a, - 0x93, 0xf3, 0x7d, 0x2b, 0xba, 0x2a, 0xff, 0x03, 0x05, 0x72, 0xef, 0x73, 0x45, 0x6b, 0xd8, 0x70, - 0x3d, 0x93, 0x5f, 0xf5, 0x71, 0x23, 0x92, 0x33, 0xa6, 0x24, 0xb9, 0xea, 0x63, 0x84, 0x02, 0x8d, - 0xe1, 0xf8, 0x71, 0x9c, 0x24, 0x27, 0xdd, 0x7e, 0x84, 0x53, 0xf9, 0x1d, 0x05, 0x0a, 0x55, 0x11, - 0x99, 0xa5, 0x03, 0x52, 0x4b, 0x30, 0x2a, 0x63, 0xb5, 0x0c, 0xf9, 0x41, 0x51, 0xc5, 0x30, 0xfa, - 0x39, 0x3a, 0xc3, 0x00, 0xbb, 0xf2, 0x6b, 0x0a, 0xe4, 0x78, 0x4a, 0x2c, 0x74, 0x46, 0xfb, 0xef, - 0xe6, 0x3e, 0x80, 0x29, 0x0b, 0xf9, 0x98, 0xfa, 0x3a, 0x73, 0x2e, 0x3c, 0x65, 0x74, 0x23, 0x09, - 0x5f, 0xb9, 0xcc, 0x5b, 0x49, 0x26, 0x9a, 0x2a, 0x40, 0xe2, 0x7c, 0x2b, 0x5f, 0x82, 0x7c, 0x94, - 0xb8, 0xd4, 0xd6, 0xf8, 0xc5, 0x67, 0x5b, 0x02, 0x26, 0xe2, 0x75, 0x4e, 0xcb, 0xc7, 0x33, 0x30, - 0x5a, 0xf9, 0x63, 0x05, 0xc6, 0x62, 0x40, 0xea, 0x2d, 0xc8, 0x76, 0x06, 0x9d, 0xa8, 0xe2, 0x45, - 0xb6, 0x8a, 0xf1, 0x6d, 0x6a, 0xfa, 0x0a, 0xdb, 0xd4, 0x8a, 0x0d, 0xc3, 0xe2, 0x13, 0xa2, 0x07, - 0xa0, 0x34, 0x93, 0x18, 0xa3, 0xd2, 0x64, 0x24, 0x4f, 0x93, 0xc8, 0xac, 0x3c, 0xad, 0xfc, 0x9e, - 0x02, 0x8b, 0xd5, 0xe0, 0x44, 0x38, 0x52, 0x6d, 0xdb, 0x0a, 0x19, 0xe8, 0x46, 0x75, 0x07, 0x0a, - 0xd2, 0x22, 0x84, 0xfd, 0x07, 0xd3, 0x3d, 0xc0, 0x4b, 0x01, 0xc9, 0x2c, 0x6f, 0xc7, 0x4a, 0xb4, - 0xf2, 0x89, 0x02, 0xb7, 0x42, 0xc9, 0xaa, 0x3d, 0xc4, 0xba, 0x78, 0x55, 0x5c, 0xbb, 0x2c, 0x14, - 0x72, 0xf1, 0xe6, 0xfe, 0xe6, 0xbf, 0x11, 0x3a, 0x7f, 0x91, 0xed, 0xf7, 0xe5, 0x1a, 0x1f, 0x91, - 0x4c, 0xa5, 0x82, 0x38, 0x50, 0x65, 0x79, 0xbf, 0xe3, 0xda, 0xe1, 0x25, 0x7f, 0xef, 0xbc, 0x7f, - 0x8e, 0xe5, 0xfd, 0xf2, 0xd2, 0x3f, 0xc5, 0xbd, 0x61, 0x58, 0xae, 0x60, 0x50, 0x1f, 0x7b, 0xc8, - 0xf1, 0xab, 0x2d, 0xbf, 0xe1, 0x7a, 0xe4, 0x23, 0xe1, 0xfc, 0x4b, 0x30, 0x7a, 0xc4, 0x6a, 0xe5, - 0xd7, 0xdc, 0x59, 0x2d, 0x28, 0xaa, 0x6f, 0xc1, 0x88, 0x0c, 0x7a, 0xa9, 0x41, 0x82, 0x9e, 0xec, - 0x5c, 0xf9, 0x36, 0x8c, 0x55, 0xf9, 0xf8, 0x38, 0xb3, 0x08, 0xdf, 0x6b, 0xc7, 0xf7, 0xae, 0x8a, - 0xff, 0x1d, 0x05, 0x0a, 0xeb, 0x87, 0x87, 0x78, 0x20, 0x1e, 0x35, 0x98, 0x70, 0xb0, 0xaf, 0x8b, - 0xa2, 0xfc, 0x38, 0x73, 0x30, 0x76, 0xe3, 0x0e, 0xf6, 0x1f, 0x0b, 0x32, 0xfe, 0x19, 0xa6, 0x3a, - 0x0b, 0x19, 0x42, 0xf5, 0x13, 0x64, 0xc9, 0x23, 0x9f, 0x8c, 0x36, 0x4a, 0xe8, 0xfb, 0xac, 0x58, - 0x69, 0x42, 0x91, 0x4f, 0xce, 0x56, 0xfb, 0x63, 0x8f, 0x1e, 0xf3, 0xd3, 0xf9, 0x94, 0x24, 0x75, - 0xb5, 0xa7, 0x24, 0xf7, 0x7d, 0xb8, 0xd5, 0xef, 0x83, 0x44, 0x15, 0x60, 0x64, 0xdb, 0x3d, 0x70, - 0xcd, 0xb3, 0xe2, 0x0d, 0xb5, 0x02, 0x0b, 0x2b, 0xf8, 0x88, 0x38, 0x2b, 0x96, 0x6b, 0x1c, 0x63, - 0xaf, 0x6e, 0x23, 0xcf, 0x5f, 0x75, 0x1d, 0xdf, 0x43, 0x86, 0x4f, 0x77, 0x1c, 0xeb, 0xac, 0xa8, - 0xa8, 0xd3, 0xa0, 0xf6, 0xa8, 0x4f, 0xa9, 0x39, 0xc8, 0xac, 0x9f, 0x60, 0xef, 0xcc, 0x75, 0x70, - 0x31, 0x7d, 0x7f, 0x2f, 0xb0, 0x7c, 0xf1, 0x9c, 0x47, 0x1d, 0x87, 0xb1, 0x7d, 0x87, 0x36, 0xb1, - 0xc1, 0xa3, 0x74, 0xf1, 0x06, 0x63, 0x2b, 0xe6, 0xbe, 0xa8, 0xb0, 0xdf, 0xbb, 0xa8, 0x45, 0xb1, - 0x59, 0x4c, 0xa9, 0x05, 0x80, 0x35, 0x6c, 0xbb, 0x16, 0xa1, 0x0d, 0x6c, 0x16, 0xd3, 0xea, 0x18, - 0x8c, 0xf2, 0x67, 0xb0, 0xd8, 0x2c, 0x0e, 0xdd, 0xff, 0x8b, 0x94, 0x7c, 0xb1, 0xc1, 0x8f, 0x99, - 0xcb, 0x30, 0xb6, 0xbf, 0x5d, 0xdf, 0x5d, 0x5f, 0xad, 0x6d, 0xd4, 0xd6, 0xd7, 0x8a, 0x37, 0xe6, - 0xc6, 0xcf, 0x9f, 0x97, 0xe3, 0x55, 0x6a, 0x11, 0xd2, 0x2b, 0xfb, 0x1f, 0x14, 0x95, 0xb9, 0xd1, - 0xf3, 0xe7, 0x65, 0xf6, 0x93, 0xc5, 0xff, 0xfa, 0xfa, 0xe6, 0x66, 0x31, 0x35, 0x97, 0x39, 0x7f, - 0x5e, 0xe6, 0xbf, 0xd9, 0x4a, 0xa8, 0xef, 0xed, 0xec, 0xea, 0xac, 0x6b, 0x7a, 0x2e, 0x77, 0xfe, - 0xbc, 0x1c, 0x96, 0x99, 0xc3, 0xe7, 0xbf, 0x39, 0xd1, 0xd0, 0x5c, 0xfe, 0xfc, 0x79, 0x39, 0xaa, - 0x60, 0x94, 0x7b, 0xd5, 0xf7, 0xd6, 0x39, 0xe5, 0xb0, 0xa0, 0x0c, 0xca, 0x8c, 0x92, 0xff, 0xe6, - 0x94, 0x23, 0x82, 0x32, 0xac, 0x50, 0xa7, 0x61, 0x64, 0x65, 0xff, 0x03, 0x7d, 0x77, 0xa7, 0x38, - 0x3a, 0x07, 0xe7, 0xcf, 0xcb, 0xb2, 0xc4, 0xec, 0x93, 0xb5, 0xb3, 0x86, 0xcc, 0xdc, 0xd8, 0xf9, - 0xf3, 0x72, 0x50, 0x54, 0x17, 0x00, 0x58, 0x9f, 0xea, 0xde, 0xce, 0x56, 0x6d, 0xb5, 0x98, 0x9d, - 0x2b, 0x9c, 0x3f, 0x2f, 0xc7, 0x6a, 0x98, 0x36, 0x78, 0x57, 0xd9, 0x01, 0x84, 0x36, 0x62, 0x55, - 0xf7, 0xff, 0x41, 0x81, 0xfc, 0x7a, 0x70, 0x7a, 0xc5, 0x35, 0x78, 0x0b, 0x4a, 0xb1, 0x59, 0x69, - 0x6b, 0x13, 0x53, 0x24, 0xe6, 0xb0, 0xa8, 0xa8, 0x79, 0xc8, 0xf2, 0x5b, 0xa0, 0x0d, 0x62, 0x59, - 0xc5, 0x94, 0x3a, 0x07, 0xd3, 0xbc, 0xb8, 0x85, 0x7c, 0xa3, 0xa1, 0x89, 0xef, 0x84, 0xf9, 0xc4, - 0x14, 0xd3, 0xcc, 0x40, 0xa2, 0xb6, 0x6d, 0xfc, 0x4c, 0xd4, 0x0f, 0xa9, 0x37, 0x61, 0x42, 0x7e, - 0xa6, 0x28, 0xbf, 0xfd, 0x25, 0xae, 0x53, 0x1c, 0x66, 0x50, 0xe2, 0x9d, 0x73, 0xe7, 0x6b, 0xca, - 0xe2, 0x08, 0x83, 0xda, 0x39, 0x3c, 0xa4, 0xd8, 0x67, 0xf8, 0xc1, 0x01, 0x4c, 0x71, 0x94, 0x49, - 0x53, 0x3f, 0x73, 0xfc, 0x06, 0xf6, 0x89, 0x51, 0xcc, 0xdc, 0xff, 0x24, 0x30, 0x8b, 0x2d, 0x44, - 0x8f, 0x99, 0x6a, 0xf7, 0xb7, 0xf7, 0xeb, 0xdc, 0x22, 0xb8, 0x6a, 0x45, 0x89, 0x19, 0x43, 0x75, - 0x3b, 0x34, 0x86, 0xea, 0xf6, 0x07, 0x4c, 0xd9, 0xda, 0xfa, 0xe3, 0xfd, 0xcd, 0xaa, 0x56, 0x4c, - 0x09, 0x65, 0xcb, 0x22, 0x53, 0xe6, 0xea, 0xce, 0xf6, 0x5a, 0x6d, 0xaf, 0xb6, 0xb3, 0x5d, 0x65, - 0x13, 0xcf, 0x95, 0x19, 0xab, 0x52, 0x97, 0x60, 0x66, 0xad, 0xa6, 0xad, 0xaf, 0xb2, 0x22, 0x9b, - 0x6f, 0x7d, 0x47, 0xd3, 0x9f, 0xd4, 0x1e, 0x3f, 0x59, 0xd7, 0x8a, 0x99, 0xb9, 0x89, 0xf3, 0xe7, - 0xe5, 0x7c, 0x5b, 0x65, 0x7b, 0x7f, 0x3e, 0x2b, 0x3b, 0x9a, 0xbe, 0xb9, 0xf3, 0x0b, 0xeb, 0x5a, - 0xb1, 0x28, 0xfa, 0xb7, 0x55, 0xaa, 0xf3, 0x30, 0xb6, 0xf7, 0xc1, 0xee, 0xba, 0xbe, 0x55, 0xd5, - 0xde, 0x5b, 0xdf, 0x2b, 0x96, 0xc5, 0x50, 0x44, 0x49, 0x9d, 0x05, 0xe0, 0x8d, 0x9b, 0xb5, 0xad, - 0xda, 0x5e, 0xf1, 0xdd, 0xb9, 0xec, 0xf9, 0xf3, 0xf2, 0x30, 0x2f, 0xac, 0x34, 0x7e, 0xf0, 0xe9, - 0x82, 0xf2, 0xa3, 0x4f, 0x17, 0x94, 0x7f, 0xfd, 0x74, 0x41, 0xf9, 0xce, 0x67, 0x0b, 0x37, 0x7e, - 0xf4, 0xd9, 0xc2, 0x8d, 0x7f, 0xfc, 0x6c, 0xe1, 0xc6, 0x37, 0xb6, 0x63, 0xf9, 0x5b, 0x2d, 0x88, - 0x2c, 0x9b, 0xe8, 0x80, 0x2e, 0x87, 0x71, 0xe6, 0x0d, 0xc3, 0xf5, 0x70, 0xbc, 0xd8, 0x40, 0xc4, - 0x59, 0xb6, 0x5d, 0xb6, 0x8f, 0xa0, 0xd1, 0x9f, 0xb6, 0xe1, 0xb9, 0xde, 0xc1, 0x08, 0xff, 0x24, - 0xf6, 0x8b, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x24, 0x31, 0x0d, 0xfd, 0x46, 0x00, 0x00, + // 4712 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0xdb, 0x6f, 0x64, 0xd9, + 0x55, 0x77, 0x9f, 0x2a, 0x5f, 0xaa, 0x96, 0xab, 0xca, 0xe5, 0x63, 0xb7, 0x5d, 0xb6, 0xbb, 0xed, + 0x9a, 0xea, 0xe9, 0x4c, 0x4f, 0xcf, 0x8c, 0x3d, 0xdd, 0xf9, 0x26, 0x99, 0xe9, 0x28, 0xca, 0x94, + 0x6f, 0xdd, 0xf5, 0x8d, 0x6f, 0x39, 0x65, 0x0f, 0x4c, 0xa2, 0xe4, 0x68, 0xfb, 0x9c, 0x6d, 0xd7, + 0x1e, 0x9f, 0x4b, 0xf5, 0xd9, 0xa7, 0xdc, 0xf6, 0x20, 0x24, 0x84, 0x46, 0x88, 0x71, 0x40, 0x84, + 0x07, 0x84, 0x84, 0xd4, 0x28, 0x3c, 0x20, 0x04, 0x4f, 0x11, 0x4f, 0x48, 0xf0, 0x80, 0x84, 0x20, + 0x79, 0x08, 0x52, 0x1e, 0x10, 0x42, 0x20, 0x05, 0x34, 0x83, 0x14, 0xc4, 0xdf, 0x80, 0x22, 0xb4, + 0x2f, 0xe7, 0x52, 0x17, 0x97, 0xeb, 0xb8, 0x3d, 0x10, 0xe0, 0xa5, 0xbb, 0xf6, 0x65, 0xfd, 0xd6, + 0xda, 0x6b, 0xaf, 0xbd, 0xd6, 0xda, 0x97, 0x63, 0x78, 0x95, 0x38, 0x1f, 0x62, 0xc3, 0x27, 0x27, + 0x78, 0x19, 0x9f, 0x1a, 0x0d, 0xe4, 0x1c, 0xe1, 0xe5, 0x93, 0x07, 0x07, 0xd8, 0x47, 0x0f, 0xc2, + 0x8a, 0xa5, 0xa6, 0xe7, 0xfa, 0xae, 0x3a, 0x17, 0x76, 0x5d, 0x0a, 0x5b, 0x64, 0xd7, 0xb9, 0xa9, + 0x23, 0xf7, 0xc8, 0xe5, 0xdd, 0x96, 0xd9, 0x2f, 0x41, 0x31, 0xb7, 0x60, 0xb8, 0xd4, 0x76, 0xe9, + 0xf2, 0x01, 0xa2, 0x11, 0xaa, 0xe1, 0x12, 0x47, 0xb6, 0xdf, 0x8d, 0x98, 0xbb, 0x1e, 0x32, 0xac, + 0xa8, 0x93, 0x28, 0xca, 0x6e, 0x13, 0xc8, 0x26, 0x8e, 0xbb, 0xcc, 0xff, 0x15, 0x55, 0x95, 0x7f, + 0x4a, 0xc1, 0xf8, 0x4e, 0x13, 0x3b, 0xdb, 0xae, 0x4f, 0x5c, 0x07, 0x59, 0xab, 0xa8, 0xa9, 0x9e, + 0x2b, 0x90, 0x69, 0x39, 0x06, 0x6a, 0x36, 0xb1, 0x59, 0x52, 0xca, 0xca, 0xbd, 0xb1, 0x87, 0x5f, + 0x5c, 0xba, 0x58, 0xe6, 0xa5, 0x0e, 0xfa, 0x7d, 0x49, 0xba, 0xf2, 0xe5, 0x3f, 0xfd, 0xe9, 0xf7, + 0xef, 0x3f, 0x4c, 0x4e, 0xf8, 0xe4, 0x86, 0x16, 0xf2, 0x57, 0x7f, 0x55, 0x81, 0x11, 0x29, 0x4a, + 0x8a, 0x8b, 0xf2, 0x20, 0x81, 0x28, 0xab, 0x42, 0x90, 0xb7, 0x98, 0x20, 0x6f, 0x26, 0x25, 0x7b, + 0x72, 0x43, 0x93, 0x9c, 0x1f, 0x2d, 0x9f, 0xff, 0xf4, 0xfb, 0xf7, 0xef, 0x0f, 0x0e, 0xb0, 0x32, + 0x0c, 0x69, 0x03, 0x35, 0x2b, 0x1a, 0xcc, 0x5c, 0x30, 0xc6, 0x47, 0x5f, 0x3e, 0xbf, 0x9a, 0x72, + 0x2a, 0x9f, 0x28, 0x70, 0xb3, 0xa7, 0xbc, 0xea, 0x3b, 0x30, 0x7c, 0x82, 0xac, 0x16, 0xe6, 0x73, + 0x96, 0x5d, 0xb9, 0xf3, 0xc3, 0x9f, 0x2c, 0xde, 0xf8, 0xc7, 0x9f, 0x2c, 0xce, 0x0b, 0xe3, 0xa1, + 0xe6, 0xf1, 0x12, 0x71, 0x97, 0x6d, 0xe4, 0x37, 0x96, 0x36, 0xf1, 0x11, 0x32, 0xce, 0xd6, 0xb0, + 0xa1, 0x09, 0x8a, 0x47, 0x6f, 0x9d, 0x5f, 0x45, 0x43, 0x95, 0xef, 0x4c, 0xc3, 0xc8, 0x2e, 0xf2, + 0x90, 0x4d, 0x55, 0x0c, 0x8b, 0xb4, 0xe9, 0xfa, 0xba, 0x8d, 0xbc, 0x63, 0xec, 0xeb, 0xc4, 0xa1, + 0x3e, 0x72, 0x7c, 0xdd, 0x22, 0xd4, 0x27, 0xce, 0x91, 0x7e, 0x88, 0xb1, 0x34, 0xa5, 0xd9, 0x25, + 0x21, 0xcf, 0x12, 0x33, 0xe6, 0x10, 0x7f, 0xd5, 0x25, 0xce, 0xca, 0x10, 0x93, 0x58, 0x9b, 0x67, + 0x38, 0x5b, 0x1c, 0xa6, 0x26, 0x50, 0x36, 0x05, 0xc8, 0x06, 0xc6, 0xea, 0x53, 0xb8, 0x6b, 0x62, + 0x8f, 0x9c, 0x20, 0x26, 0x66, 0x3f, 0x66, 0xa9, 0xc1, 0x98, 0xbd, 0x14, 0xa1, 0x5d, 0xc4, 0x12, + 0xc1, 0xbc, 0x89, 0x0f, 0x51, 0xcb, 0xf2, 0x75, 0x39, 0xc2, 0x63, 0xec, 0x31, 0x1e, 0xba, 0x87, + 0x7c, 0x5c, 0x4a, 0x0f, 0xae, 0xec, 0x19, 0x89, 0x53, 0xe7, 0x03, 0x3c, 0xc6, 0xde, 0x06, 0xc6, + 0x1a, 0xf2, 0xbb, 0x59, 0xf8, 0xed, 0x2c, 0x86, 0xae, 0xc6, 0x62, 0x2f, 0xce, 0xc2, 0x86, 0x97, + 0x02, 0x16, 0x6d, 0x0a, 0x6c, 0x63, 0x34, 0x3c, 0x38, 0xa3, 0xdb, 0x12, 0x6d, 0x2d, 0xa6, 0xbf, + 0x4b, 0xd9, 0x75, 0x8c, 0x6b, 0xe4, 0x45, 0xd8, 0xb5, 0x8d, 0xce, 0x84, 0x5b, 0x01, 0x3b, 0xe2, + 0x10, 0x9f, 0x20, 0x8b, 0xd9, 0xc6, 0x11, 0x71, 0x18, 0x23, 0xe2, 0x96, 0x46, 0x07, 0xe7, 0x34, + 0x2b, 0x81, 0x6a, 0x02, 0x67, 0x8b, 0xc3, 0x68, 0x0c, 0x45, 0xb5, 0xa0, 0x1c, 0x70, 0xb1, 0x11, + 0x71, 0x7c, 0xec, 0x20, 0xc7, 0xc0, 0xed, 0x9c, 0x32, 0xc9, 0xc7, 0xb4, 0x15, 0x61, 0xc5, 0xb9, + 0xbd, 0x0d, 0xa5, 0x80, 0xdb, 0x61, 0xcb, 0x31, 0x99, 0x61, 0xb3, 0x7e, 0xde, 0x09, 0xb2, 0x4a, + 0xd9, 0xb2, 0x72, 0x2f, 0xad, 0x4d, 0xcb, 0xf6, 0x0d, 0xd1, 0x5c, 0x93, 0xad, 0xea, 0xab, 0x50, + 0x0c, 0x28, 0xec, 0x96, 0xe5, 0x93, 0xa6, 0x85, 0x4b, 0xc0, 0x29, 0xc6, 0x65, 0xfd, 0x96, 0xac, + 0x56, 0x7f, 0x11, 0xa6, 0x3d, 0x6c, 0xa1, 0x33, 0x39, 0x2d, 0xb4, 0x81, 0x3c, 0x39, 0x39, 0x63, + 0x83, 0x0f, 0x64, 0x52, 0x42, 0x6c, 0x60, 0x5c, 0x67, 0x00, 0x7c, 0x4a, 0x08, 0x2c, 0x06, 0xe2, + 0x37, 0xdc, 0x96, 0x67, 0x9d, 0x85, 0xa3, 0x60, 0xf0, 0xba, 0x81, 0x9a, 0xa5, 0xdc, 0xe0, 0x2c, + 0x82, 0xf5, 0xf1, 0x84, 0x43, 0xc9, 0x01, 0x33, 0x3e, 0x2c, 0x60, 0xc5, 0x66, 0x5f, 0xb2, 0xe2, + 0x8a, 0xc2, 0xd4, 0x17, 0x43, 0xc9, 0x27, 0x9f, 0x7d, 0xc1, 0xa7, 0x26, 0x61, 0xf8, 0x80, 0xd6, + 0x60, 0xd1, 0x46, 0xa7, 0x71, 0x73, 0x76, 0x3d, 0x13, 0x7b, 0x3a, 0x25, 0x26, 0xd6, 0x0d, 0xb7, + 0xe5, 0xf8, 0xa5, 0x42, 0x59, 0xb9, 0x97, 0xd7, 0xe6, 0x6d, 0x74, 0x1a, 0xd9, 0xe9, 0x0e, 0xeb, + 0x54, 0x27, 0x26, 0x5e, 0x65, 0x5d, 0x54, 0x0a, 0xaf, 0x10, 0xe7, 0x43, 0xdd, 0xc3, 0xcf, 0x90, + 0x67, 0xea, 0x94, 0xad, 0x08, 0x53, 0xf7, 0xf0, 0xd3, 0x16, 0xf1, 0xb0, 0x8d, 0x1d, 0x5f, 0xf7, + 0x1b, 0x1e, 0xa6, 0x0d, 0xd7, 0x32, 0x4b, 0xe3, 0x5c, 0xec, 0xdb, 0x52, 0xec, 0x9b, 0xdd, 0x62, + 0xd7, 0x1c, 0x5f, 0xbb, 0x43, 0x9c, 0x0f, 0x35, 0x0e, 0x56, 0xe7, 0x58, 0x5a, 0x04, 0xb5, 0x17, + 0x20, 0xa9, 0x8f, 0xa1, 0xec, 0x7b, 0x48, 0x28, 0x9f, 0xf7, 0xa5, 0xfa, 0x09, 0x16, 0xbe, 0xd2, + 0x6c, 0x71, 0xbb, 0x75, 0x4a, 0x45, 0x6e, 0x20, 0xb7, 0x65, 0x3f, 0x01, 0x49, 0xdf, 0x17, 0xbd, + 0xd6, 0x64, 0x27, 0xa6, 0x69, 0x8b, 0x3c, 0x6d, 0x11, 0x13, 0xf9, 0xae, 0x17, 0x0e, 0x22, 0x32, + 0x9a, 0x89, 0x04, 0x9a, 0x8e, 0x80, 0xa4, 0xfc, 0xa1, 0xe9, 0x9c, 0xc2, 0xab, 0x07, 0xc4, 0x41, + 0xde, 0x99, 0xee, 0x36, 0x19, 0x5b, 0xda, 0xcf, 0xd1, 0xab, 0x83, 0x39, 0xfa, 0x97, 0x05, 0xe2, + 0x8e, 0x00, 0xbc, 0xc8, 0xd7, 0xff, 0x8a, 0x02, 0x65, 0xe4, 0xbb, 0x36, 0x31, 0x02, 0x96, 0x62, + 0x8e, 0x91, 0x61, 0x60, 0x4a, 0x75, 0x0b, 0x9f, 0x60, 0xab, 0x34, 0x59, 0x56, 0xee, 0x15, 0x1e, + 0xbe, 0xdd, 0x2f, 0x0f, 0xa9, 0x72, 0x0c, 0xc1, 0x85, 0x1b, 0x40, 0x95, 0x03, 0x6c, 0x32, 0x7a, + 0xed, 0x16, 0xea, 0xd3, 0xaa, 0x9e, 0xc2, 0x2b, 0x3c, 0x06, 0xf4, 0x12, 0x83, 0x2d, 0x51, 0xb9, + 0xa2, 0x09, 0xf6, 0x4a, 0x53, 0x83, 0x6b, 0xbb, 0xc2, 0x30, 0xbb, 0xa4, 0xda, 0xc0, 0x78, 0x2b, + 0x84, 0x53, 0x3f, 0x56, 0xe0, 0x8d, 0x98, 0x75, 0x0f, 0x20, 0xc0, 0xcd, 0xc1, 0x05, 0xb8, 0x17, + 0x21, 0x5f, 0x22, 0xc6, 0x77, 0x14, 0x78, 0xd0, 0x31, 0xfd, 0x03, 0x88, 0x32, 0x3d, 0xb8, 0x28, + 0xaf, 0xb5, 0x99, 0xc2, 0x25, 0xd2, 0x7c, 0x1b, 0x66, 0x6d, 0xe2, 0x10, 0x1b, 0x59, 0x3a, 0xcf, + 0x98, 0x0d, 0xd7, 0x8a, 0x02, 0xd8, 0xcc, 0xe0, 0x4c, 0xa7, 0x25, 0xca, 0xae, 0x04, 0x09, 0x22, + 0xd7, 0x37, 0xe1, 0x35, 0x42, 0x43, 0xc3, 0xee, 0xce, 0x6d, 0x2c, 0xd4, 0x72, 0x8c, 0x86, 0x8e, + 0x1d, 0x74, 0x60, 0x61, 0xb3, 0x54, 0x2a, 0x2b, 0xf7, 0x32, 0xda, 0x17, 0x08, 0x95, 0xb6, 0xbb, + 0xd6, 0x91, 0xbe, 0x6c, 0xf2, 0xee, 0xeb, 0xa2, 0x37, 0x73, 0x59, 0x4d, 0x97, 0xfa, 0xba, 0xeb, + 0x58, 0x67, 0xba, 0xed, 0x9a, 0x58, 0x6f, 0x60, 0x72, 0xd4, 0x88, 0x3b, 0x99, 0x59, 0xbe, 0xec, + 0xe7, 0x59, 0xb7, 0x1d, 0xc7, 0x3a, 0xdb, 0x72, 0x4d, 0xfc, 0x84, 0xf7, 0x89, 0xbc, 0xc7, 0x11, + 0x3c, 0x90, 0x21, 0xce, 0xc4, 0x86, 0x87, 0x11, 0xc5, 0x7a, 0xd3, 0x23, 0x06, 0xd6, 0x7d, 0x62, + 0x63, 0xea, 0x23, 0xbb, 0x19, 0xe1, 0xe9, 0x14, 0x1b, 0xae, 0x63, 0xd2, 0xd2, 0x1c, 0xc7, 0x7d, + 0x5d, 0x10, 0xae, 0x49, 0xba, 0x5d, 0x46, 0xb6, 0x17, 0x50, 0x85, 0x1c, 0xea, 0x82, 0x46, 0x7d, + 0x05, 0xc6, 0x83, 0x95, 0xa4, 0x23, 0xd3, 0x26, 0x0e, 0x2d, 0xcd, 0x97, 0xd3, 0xf7, 0xb2, 0x5a, + 0x21, 0xa8, 0xae, 0xf2, 0x5a, 0x75, 0x1b, 0x26, 0x99, 0x13, 0x45, 0x2d, 0x83, 0x4d, 0xa1, 0xce, + 0xdc, 0x32, 0x8b, 0x27, 0xb7, 0xf8, 0x74, 0x2c, 0xf6, 0x75, 0x98, 0x25, 0x45, 0x2b, 0x12, 0xe7, + 0xc3, 0xaa, 0x20, 0xdd, 0x42, 0xa7, 0x2c, 0x80, 0xdc, 0x87, 0x89, 0x43, 0x72, 0x8a, 0x4d, 0xfd, + 0x08, 0xd1, 0x50, 0xd5, 0xb7, 0xb9, 0xaa, 0xc7, 0x79, 0xc3, 0x63, 0x44, 0xa5, 0x4e, 0x1f, 0x95, + 0xfe, 0xed, 0x7b, 0x8b, 0x0a, 0x4b, 0x97, 0x43, 0x59, 0x97, 0x45, 0x0a, 0x5c, 0xf9, 0x58, 0x81, + 0x49, 0x31, 0x0b, 0xed, 0x26, 0x34, 0x0f, 0xd9, 0xc0, 0x7f, 0x89, 0xfd, 0x54, 0x56, 0xcb, 0x88, + 0x8a, 0x9a, 0xa9, 0xfe, 0x7f, 0x28, 0x74, 0x58, 0x72, 0x6a, 0x70, 0xa3, 0xca, 0x1f, 0xc6, 0x19, + 0x3d, 0x1a, 0xfa, 0xf5, 0xef, 0x2d, 0xde, 0xa8, 0xfc, 0x00, 0xa0, 0xd8, 0x69, 0x16, 0xea, 0x34, + 0x8c, 0xf8, 0xc4, 0x38, 0xc6, 0x9e, 0x14, 0x40, 0x96, 0xd4, 0x45, 0x18, 0x13, 0x5b, 0x44, 0x9d, + 0x39, 0x4e, 0xc1, 0x5b, 0x03, 0x51, 0xb5, 0x82, 0x28, 0x56, 0x5f, 0x82, 0x9c, 0xec, 0xf0, 0xb4, + 0xe5, 0x06, 0xe9, 0xae, 0x26, 0x89, 0xbe, 0xce, 0xaa, 0xd4, 0xf5, 0x10, 0xc3, 0x3f, 0x6b, 0x8a, + 0x6c, 0xb5, 0xf0, 0xf0, 0xe5, 0x98, 0x7b, 0x94, 0x9b, 0xd0, 0x70, 0x2f, 0xc1, 0x8b, 0x7b, 0x67, + 0x4d, 0x1c, 0x70, 0x62, 0xbf, 0xd5, 0x25, 0x98, 0x94, 0x30, 0xd4, 0x40, 0x16, 0xd6, 0x0f, 0x91, + 0xe1, 0xbb, 0x1e, 0xcf, 0x49, 0xf3, 0xda, 0x84, 0x68, 0xaa, 0xb3, 0x96, 0x0d, 0xde, 0xc0, 0x44, + 0xe7, 0x22, 0xe9, 0x26, 0x76, 0x5c, 0x5b, 0x24, 0x93, 0x1a, 0xf0, 0xaa, 0x35, 0x56, 0xd3, 0xae, + 0xf7, 0xd1, 0x0e, 0xbd, 0xef, 0xc3, 0x54, 0xcf, 0x4c, 0x31, 0x41, 0xfe, 0xa6, 0x92, 0xee, 0x14, + 0xf1, 0x5b, 0x50, 0xba, 0x30, 0x35, 0xcc, 0x26, 0xf1, 0x16, 0xbd, 0x73, 0xc2, 0x1a, 0x14, 0x3a, + 0x52, 0x76, 0x18, 0x1c, 0x34, 0x67, 0xc7, 0x53, 0xe6, 0x1a, 0x14, 0x3a, 0xd2, 0xf1, 0x04, 0x19, + 0x5f, 0xce, 0x8f, 0x43, 0x5d, 0x9c, 0x44, 0xe6, 0x5e, 0x30, 0x89, 0x2c, 0xc3, 0x18, 0xa1, 0xbb, + 0xd8, 0x6b, 0x62, 0xbf, 0x85, 0x2c, 0x9e, 0xc8, 0x65, 0xb4, 0x78, 0x95, 0xfa, 0x2e, 0x8c, 0x50, + 0x1f, 0xf9, 0x2d, 0xca, 0x93, 0xaf, 0xc2, 0xc3, 0x7b, 0xfd, 0xc2, 0xb2, 0x58, 0x0c, 0x75, 0xde, + 0x5f, 0x93, 0x74, 0xaa, 0x06, 0x93, 0x36, 0x71, 0x42, 0x97, 0x66, 0x1c, 0xeb, 0x94, 0x7c, 0x84, + 0x65, 0xf6, 0x35, 0x90, 0xe8, 0x45, 0x9b, 0x38, 0xd2, 0xb5, 0x19, 0xc7, 0x75, 0xf2, 0x11, 0xd7, + 0x08, 0xc3, 0x7c, 0xda, 0x42, 0x8e, 0x4f, 0xfc, 0xb3, 0x18, 0x6c, 0x31, 0x81, 0x46, 0x6c, 0xe2, + 0x7c, 0x5d, 0x22, 0x84, 0xc8, 0x1b, 0x90, 0x63, 0xc8, 0x8e, 0xdc, 0x8b, 0x27, 0xc9, 0xb8, 0xc6, + 0x6c, 0x12, 0xee, 0xe1, 0xd5, 0x29, 0x18, 0xe6, 0x2e, 0x96, 0xe7, 0x4f, 0x59, 0x4d, 0x14, 0xd4, + 0xd7, 0x60, 0x82, 0xff, 0xd0, 0x9b, 0xd8, 0xb3, 0x09, 0xa5, 0x2c, 0x40, 0xf2, 0x7c, 0x27, 0xaf, + 0x15, 0x79, 0xc3, 0x6e, 0x54, 0xaf, 0xde, 0x85, 0x42, 0xb0, 0x00, 0x0d, 0x16, 0xda, 0x28, 0x4f, + 0x48, 0xf2, 0x5a, 0x5e, 0xae, 0x41, 0x51, 0xa9, 0xd6, 0x61, 0xd2, 0xc3, 0x66, 0xab, 0x73, 0x35, + 0x24, 0xc8, 0x1d, 0x26, 0x04, 0x7d, 0xfb, 0x3a, 0x9b, 0x70, 0x9b, 0x38, 0xd2, 0x03, 0xf7, 0xff, + 0xd3, 0x3c, 0x15, 0x7c, 0x2d, 0xc1, 0x01, 0x91, 0x4c, 0x0e, 0xc7, 0xdd, 0xf6, 0x6a, 0xe9, 0x49, + 0x7f, 0x96, 0x81, 0xc9, 0x95, 0xee, 0xb4, 0xf1, 0x42, 0x67, 0x7a, 0x07, 0xf2, 0x81, 0x07, 0x3b, + 0xb3, 0x0f, 0x5c, 0x4b, 0xba, 0x53, 0xe9, 0x40, 0xeb, 0xbc, 0x8e, 0x05, 0x39, 0xd9, 0xa9, 0xe9, + 0xb9, 0x27, 0xc4, 0xc4, 0x9e, 0xf4, 0xa9, 0x05, 0x51, 0xbd, 0x2b, 0x6b, 0xff, 0xbb, 0xdc, 0xea, + 0x03, 0x98, 0xc2, 0xa7, 0x4d, 0x22, 0x12, 0xfe, 0x28, 0xc4, 0x73, 0xff, 0x9a, 0xd6, 0x26, 0xa3, + 0xb6, 0x30, 0x8e, 0x33, 0x12, 0x8a, 0x7d, 0xdf, 0x92, 0x1b, 0x98, 0x90, 0x64, 0x54, 0x90, 0x44, + 0x6d, 0x11, 0x49, 0x68, 0x7e, 0x99, 0xb8, 0xf9, 0x75, 0xb8, 0xf4, 0x6c, 0x7f, 0x97, 0x0e, 0x1d, + 0x2e, 0xbd, 0xdb, 0x39, 0x8e, 0x5d, 0x9f, 0x73, 0xcc, 0x5d, 0xbf, 0x73, 0xcc, 0xbf, 0xa0, 0x73, + 0xfc, 0xbf, 0xe6, 0xfa, 0xb6, 0xa1, 0x18, 0x33, 0x33, 0x2e, 0x74, 0xcc, 0xfd, 0x29, 0x97, 0x61, + 0x8e, 0x47, 0xc4, 0x5c, 0xe2, 0x2e, 0x57, 0xaa, 0x5e, 0xd1, 0x95, 0x7e, 0x0e, 0x4e, 0x53, 0x3a, + 0xa0, 0x7f, 0x4d, 0xc1, 0xcc, 0x3a, 0x5b, 0x70, 0x67, 0x1b, 0x2d, 0xbf, 0xe5, 0xe1, 0x70, 0xdf, + 0x7a, 0xe8, 0xf6, 0xcf, 0x2a, 0x2f, 0x5a, 0xc4, 0xa9, 0x8b, 0x17, 0xf1, 0x9b, 0x30, 0xe5, 0x3f, + 0x43, 0x4d, 0x9d, 0xfa, 0xc8, 0x8b, 0x2f, 0xe2, 0x34, 0x27, 0x51, 0x59, 0x5b, 0x9d, 0x35, 0x45, + 0x14, 0xcf, 0xe0, 0x0b, 0x71, 0x26, 0x11, 0xb1, 0xb0, 0x27, 0xa3, 0x65, 0xb7, 0x2c, 0x9e, 0x83, + 0x26, 0x39, 0xc0, 0xac, 0xc4, 0x64, 0x0b, 0x58, 0xf2, 0xe9, 0x5a, 0x0d, 0xe1, 0x7a, 0x1a, 0x42, + 0x82, 0xa3, 0xcb, 0x4e, 0x43, 0xa8, 0xfc, 0x4d, 0x0a, 0x26, 0xc3, 0x8c, 0x62, 0x50, 0x15, 0x7f, + 0x03, 0x66, 0x2e, 0x3a, 0xd7, 0x4a, 0x90, 0xc1, 0x4f, 0x35, 0x7a, 0x1d, 0x68, 0xed, 0xc3, 0x54, + 0xcf, 0x83, 0xac, 0x04, 0x67, 0xcd, 0x6a, 0xa3, 0xfb, 0x04, 0xeb, 0xff, 0xc1, 0xb4, 0x83, 0x4f, + 0xa3, 0xe3, 0xc4, 0x68, 0x92, 0x87, 0xf8, 0x24, 0x4f, 0xb1, 0x56, 0x29, 0x4a, 0x34, 0xcd, 0xb1, + 0xd3, 0xc4, 0xf0, 0xfc, 0x71, 0xb8, 0xed, 0x34, 0x31, 0x38, 0x78, 0xac, 0x7c, 0xa6, 0xc0, 0x74, + 0x87, 0x22, 0x25, 0x9c, 0xaa, 0x81, 0x1a, 0x19, 0x44, 0x20, 0x41, 0x92, 0x9b, 0x8a, 0x89, 0x88, + 0x3c, 0xc0, 0xdc, 0x86, 0x62, 0x0c, 0x53, 0xd8, 0x41, 0x02, 0xdd, 0x8f, 0x47, 0xc4, 0xc2, 0x21, + 0xdc, 0x85, 0x82, 0x85, 0x68, 0xb7, 0xf1, 0xe7, 0x59, 0x6d, 0xa8, 0x90, 0xca, 0x6f, 0x2a, 0xb0, + 0xd0, 0xb9, 0xc1, 0xaa, 0x87, 0x26, 0x75, 0xb9, 0xe5, 0xf4, 0x32, 0xdf, 0xd4, 0x0b, 0x98, 0xef, + 0x57, 0x61, 0x6a, 0xbb, 0xd7, 0xc4, 0xdd, 0x85, 0x02, 0x9f, 0xee, 0x68, 0x38, 0x8a, 0x18, 0x0e, + 0xab, 0x8d, 0x86, 0xf3, 0xef, 0x0a, 0x14, 0xb6, 0x88, 0xc9, 0xb1, 0xaa, 0x8e, 0xb9, 0xb7, 0xb3, + 0xa2, 0xbe, 0x0b, 0x59, 0x9b, 0x98, 0x52, 0x34, 0x65, 0x70, 0x17, 0x9b, 0xb1, 0x25, 0x0e, 0x0b, + 0xa0, 0x07, 0xcc, 0x6c, 0x0f, 0x5a, 0x67, 0x5d, 0x23, 0xbc, 0x14, 0x26, 0xc7, 0x48, 0x57, 0x5a, + 0x67, 0x02, 0xea, 0x3d, 0x18, 0xe7, 0x50, 0x14, 0x5b, 0x96, 0xc4, 0x4a, 0x0f, 0x8e, 0x95, 0x67, + 0xb4, 0x75, 0x6c, 0x59, 0x42, 0x57, 0x7f, 0x36, 0x02, 0x50, 0x0f, 0xef, 0x97, 0x2e, 0xcc, 0xe4, + 0x6e, 0x03, 0xb0, 0xfd, 0xb0, 0xcc, 0x43, 0x44, 0x1a, 0x97, 0x65, 0x35, 0x22, 0x0d, 0xe9, 0xc8, + 0x53, 0xd2, 0x5d, 0x79, 0x4a, 0x77, 0x2a, 0x32, 0x74, 0x7d, 0xa9, 0xc8, 0xf0, 0xf5, 0xa7, 0x22, + 0x23, 0x2f, 0x98, 0x8a, 0xf4, 0xdd, 0x6a, 0x47, 0x79, 0x4a, 0xe6, 0x7a, 0xf3, 0x94, 0xec, 0xe7, + 0x93, 0xa7, 0xc0, 0x35, 0x6f, 0xd1, 0xc6, 0x5e, 0x74, 0x8b, 0x96, 0xbb, 0x74, 0x8b, 0x96, 0xbf, + 0x20, 0xdb, 0xb8, 0x03, 0x79, 0x69, 0xc7, 0x32, 0xd9, 0x10, 0x37, 0x14, 0x39, 0x61, 0xca, 0x72, + 0x83, 0xd6, 0x9d, 0x92, 0x8c, 0xf7, 0x48, 0x49, 0x2a, 0x7f, 0xa8, 0xc0, 0xe8, 0x1a, 0x6e, 0xba, + 0x94, 0xf8, 0xea, 0x2e, 0x4c, 0xa0, 0x13, 0x44, 0x2c, 0x74, 0xc0, 0x4f, 0x8e, 0x2c, 0xe4, 0x18, + 0x89, 0xae, 0x9d, 0x8b, 0x21, 0xf5, 0x8a, 0x20, 0x56, 0x9f, 0x40, 0xde, 0x77, 0x7d, 0x64, 0x85, + 0x68, 0xa9, 0x24, 0x56, 0xce, 0x28, 0x25, 0x52, 0xe5, 0x75, 0x98, 0xaa, 0xb7, 0x0e, 0x90, 0xc1, + 0xaf, 0x64, 0xf6, 0x3c, 0x64, 0xe2, 0x6d, 0x97, 0x71, 0x98, 0x82, 0x61, 0xc7, 0x0d, 0xe4, 0xcc, + 0x6b, 0xa2, 0xc0, 0x42, 0x56, 0x96, 0x1f, 0xfb, 0x72, 0xbf, 0x7d, 0x07, 0xf2, 0x34, 0xa4, 0x8d, + 0x7c, 0x77, 0x2e, 0xaa, 0xac, 0x99, 0xac, 0x13, 0x5f, 0x8b, 0xd8, 0x20, 0x4d, 0x82, 0x1d, 0x3f, + 0xd8, 0xe6, 0x1d, 0x62, 0xac, 0x05, 0x75, 0xea, 0x3b, 0x30, 0xdc, 0xe9, 0xab, 0x2e, 0xbf, 0x8c, + 0xe7, 0x14, 0xea, 0xd7, 0x20, 0x13, 0x58, 0x65, 0x12, 0xb7, 0x11, 0x12, 0xa9, 0x45, 0x48, 0x1b, + 0xc4, 0x14, 0x7e, 0x42, 0x63, 0x3f, 0x2b, 0x1f, 0xa7, 0x20, 0xcb, 0xdc, 0x1e, 0x1f, 0xe9, 0x65, + 0x07, 0x92, 0x20, 0x0e, 0xd8, 0x89, 0x73, 0xe8, 0xca, 0x6b, 0xf4, 0xbb, 0x7d, 0xb7, 0xd4, 0x81, + 0xf6, 0xe4, 0x66, 0x3a, 0xeb, 0x86, 0xea, 0x5c, 0x0b, 0xb0, 0xf8, 0x0e, 0x36, 0xcd, 0x57, 0xff, + 0xe5, 0x58, 0x7c, 0x0b, 0x2b, 0x50, 0xf8, 0x0e, 0x96, 0x99, 0x86, 0x47, 0x8e, 0x8e, 0xb0, 0x27, + 0xdd, 0xff, 0x50, 0x82, 0x50, 0x22, 0x29, 0x85, 0xf7, 0xff, 0x51, 0x0a, 0x0a, 0x4c, 0x0d, 0x9b, + 0xc4, 0x26, 0x52, 0x17, 0xed, 0xc3, 0x55, 0xae, 0x71, 0xb8, 0xa9, 0x2b, 0x0e, 0xf7, 0x6b, 0x90, + 0x39, 0x24, 0x16, 0x5f, 0x1c, 0x49, 0x8c, 0x27, 0x24, 0xba, 0x3e, 0x7d, 0xb1, 0x30, 0x28, 0x06, + 0xd4, 0x40, 0xb4, 0xc1, 0xed, 0x29, 0x27, 0x25, 0x7d, 0x82, 0x68, 0xa3, 0xf2, 0x77, 0x29, 0x18, + 0x8f, 0x82, 0xe9, 0xf5, 0xeb, 0x73, 0x03, 0x72, 0xd2, 0x1b, 0xe8, 0xfc, 0xae, 0x22, 0x81, 0x4b, + 0x18, 0x93, 0x84, 0x4f, 0x5c, 0xcb, 0xec, 0x18, 0x46, 0xba, 0x63, 0x18, 0x1d, 0xd3, 0x36, 0x74, + 0x5d, 0x56, 0x3a, 0x7c, 0x55, 0x2b, 0xfd, 0x41, 0x0a, 0xc6, 0x3b, 0xee, 0x8f, 0xff, 0xa7, 0x2d, + 0xd9, 0xaf, 0xc0, 0x88, 0x38, 0xec, 0x4b, 0xe2, 0xc0, 0x24, 0xc9, 0x35, 0x6a, 0xf2, 0x3f, 0xd2, + 0x30, 0x1f, 0xc5, 0x02, 0x2e, 0xe9, 0x81, 0xeb, 0x1e, 0x6f, 0x61, 0x1f, 0x99, 0xc8, 0x47, 0xea, + 0x3b, 0x30, 0x7b, 0x82, 0x1c, 0xb6, 0x6e, 0x74, 0x8b, 0xb9, 0x04, 0x79, 0xb5, 0x28, 0x2e, 0xf3, + 0x45, 0x98, 0x98, 0x96, 0x1d, 0x22, 0x97, 0x21, 0xee, 0xf1, 0xdf, 0x85, 0xdb, 0xf2, 0x54, 0x93, + 0x5f, 0xae, 0x75, 0x93, 0xa7, 0x38, 0xf9, 0xac, 0xe8, 0xb4, 0xe3, 0x58, 0x67, 0x9d, 0x08, 0x0d, + 0x58, 0x40, 0x47, 0x47, 0x1e, 0x3e, 0x62, 0xdb, 0xc6, 0x38, 0x56, 0xe8, 0xfc, 0x13, 0xac, 0xfe, + 0xf9, 0x10, 0x4a, 0x0b, 0x19, 0x06, 0x89, 0x89, 0x8a, 0x60, 0x2e, 0xe2, 0x14, 0x0c, 0xf8, 0x2a, + 0x21, 0xa6, 0x14, 0xc2, 0xbc, 0x2f, 0x50, 0x42, 0x16, 0xeb, 0xb0, 0x18, 0x00, 0x1b, 0xae, 0x63, + 0x12, 0x79, 0x2a, 0x1b, 0x57, 0x88, 0x38, 0x71, 0xbc, 0x25, 0xbb, 0xad, 0x46, 0xbd, 0x62, 0x3a, + 0xd9, 0x84, 0x3b, 0x71, 0x4d, 0x5c, 0x04, 0x35, 0xc2, 0xa1, 0x16, 0x23, 0xdd, 0xf6, 0x44, 0xab, + 0xfc, 0x95, 0x02, 0xe3, 0x1d, 0xd3, 0x1f, 0xc5, 0x65, 0xe5, 0x85, 0xe2, 0x72, 0xea, 0x2a, 0x71, + 0xb9, 0x02, 0x39, 0x42, 0xa3, 0xf9, 0xe1, 0xf3, 0x9b, 0xd1, 0xda, 0xea, 0x82, 0xd8, 0x3d, 0x14, + 0xc5, 0xee, 0x67, 0x30, 0xd9, 0x31, 0x88, 0x35, 0x66, 0xbb, 0x55, 0x18, 0xe6, 0x2a, 0x91, 0x3e, + 0xb6, 0xef, 0xa9, 0x77, 0x07, 0xbd, 0x26, 0x28, 0x3b, 0xfc, 0x62, 0xaa, 0xd3, 0xbd, 0xff, 0x56, + 0x1a, 0xa6, 0x22, 0x3f, 0xf4, 0x73, 0x1d, 0x33, 0x23, 0x7f, 0x93, 0x4e, 0xee, 0x6f, 0xe2, 0x01, + 0x77, 0xe8, 0x5a, 0x02, 0xee, 0xf0, 0xf5, 0x04, 0xdc, 0x91, 0xce, 0x19, 0xf9, 0x9d, 0x34, 0xdc, + 0xec, 0x3c, 0x79, 0xf8, 0x5f, 0x39, 0x25, 0x6b, 0x30, 0x26, 0x2f, 0x8b, 0x78, 0xe0, 0x4f, 0x30, + 0x2b, 0x20, 0xe8, 0x78, 0xdc, 0xff, 0x2f, 0x9b, 0x97, 0xbf, 0x4e, 0x41, 0x66, 0x97, 0x6d, 0x8c, + 0x88, 0xeb, 0xa8, 0xd3, 0x30, 0x42, 0xe8, 0xa6, 0x2b, 0x4f, 0xb7, 0x32, 0x9a, 0x2c, 0xbd, 0xb8, + 0xfb, 0x58, 0x83, 0x31, 0xec, 0xf8, 0xde, 0x99, 0x9e, 0x78, 0x63, 0x01, 0x9c, 0x4e, 0x0c, 0xe5, + 0x85, 0x42, 0xf3, 0xb7, 0xa0, 0xd4, 0x7d, 0x8a, 0xa7, 0x73, 0xf4, 0x24, 0xc7, 0x12, 0xd3, 0x5d, + 0x67, 0x79, 0xeb, 0x0c, 0xa2, 0x52, 0x83, 0xa9, 0x98, 0x51, 0xd7, 0x1c, 0x93, 0x18, 0xc8, 0x77, + 0x2f, 0xc9, 0x7e, 0xa6, 0x60, 0x98, 0xd0, 0x95, 0x96, 0x50, 0x6a, 0x46, 0x13, 0x85, 0xca, 0xdf, + 0xa6, 0x20, 0xc3, 0x37, 0x7f, 0x9b, 0x6e, 0xbb, 0xea, 0x95, 0xab, 0xa8, 0x3e, 0x8c, 0x1a, 0xa9, + 0xc4, 0x51, 0xa3, 0x6b, 0x4b, 0x29, 0xf2, 0xcf, 0xf6, 0x2d, 0xe5, 0x5b, 0x90, 0x3e, 0xc4, 0x89, + 0xbc, 0x0f, 0xeb, 0x7f, 0x49, 0x7e, 0xae, 0xbe, 0x0d, 0x37, 0xdb, 0x36, 0xaa, 0x3a, 0x32, 0x4d, + 0x0f, 0x53, 0x2a, 0x0c, 0x98, 0x2f, 0x7c, 0x45, 0x9b, 0x8c, 0x6f, 0x5b, 0xab, 0xa2, 0x43, 0x10, + 0x85, 0x46, 0xa3, 0x28, 0xf4, 0x7b, 0x29, 0xc8, 0x07, 0x26, 0xbe, 0x86, 0x2d, 0x1f, 0xa9, 0x33, + 0x30, 0x4a, 0xa8, 0x6e, 0x75, 0x1b, 0xba, 0x06, 0x2a, 0x3e, 0xc5, 0x46, 0x8b, 0x5f, 0x0b, 0x5c, + 0xc5, 0xe4, 0x27, 0x42, 0xf2, 0x30, 0xbf, 0xd8, 0x86, 0x62, 0x84, 0x99, 0xdc, 0xaf, 0x8c, 0x87, + 0xc4, 0xe2, 0x12, 0x59, 0xdd, 0x84, 0xa8, 0xaa, 0x6b, 0x97, 0x74, 0x29, 0x5c, 0x21, 0xa4, 0x15, + 0x79, 0xe6, 0x1f, 0xa4, 0x41, 0x8d, 0xbd, 0x4c, 0x0e, 0xcc, 0xae, 0xe7, 0x69, 0x42, 0xe7, 0xd4, + 0xef, 0x42, 0xa1, 0x29, 0xf5, 0xaa, 0x9b, 0x4c, 0xb1, 0x32, 0x81, 0x7f, 0xb5, 0x9f, 0xc7, 0x6d, + 0x9b, 0x09, 0x2d, 0xdf, 0x6c, 0x9b, 0x98, 0xaf, 0xc0, 0x48, 0x13, 0x9d, 0xb9, 0x2d, 0x3f, 0x91, + 0xe7, 0x15, 0x24, 0x3f, 0xff, 0x96, 0xc8, 0x24, 0x6c, 0x3a, 0x56, 0x92, 0x87, 0x3a, 0xac, 0x7f, + 0xe5, 0x97, 0x40, 0x8d, 0xd2, 0xa0, 0xd0, 0x59, 0xbf, 0x0b, 0x99, 0x40, 0x79, 0x32, 0x6a, 0xbe, + 0x3c, 0x88, 0xde, 0xb5, 0x90, 0xaa, 0x7b, 0x92, 0x53, 0xdd, 0x93, 0x5c, 0x79, 0x06, 0x13, 0x11, + 0xf3, 0xe0, 0x10, 0x6d, 0x20, 0xf3, 0xf8, 0x2a, 0x8c, 0x9a, 0xa2, 0xbf, 0xb4, 0x8b, 0x3b, 0xfd, + 0xe4, 0x93, 0xd0, 0x5a, 0x40, 0x53, 0x69, 0x42, 0x5e, 0xd6, 0xed, 0x37, 0x4d, 0xe4, 0xf3, 0x53, + 0x30, 0x71, 0x68, 0x2d, 0xdc, 0xa8, 0x28, 0xa8, 0x35, 0xc8, 0x48, 0x0a, 0x5a, 0x4a, 0x95, 0xd3, + 0xf7, 0xc6, 0x1e, 0xbe, 0x31, 0x58, 0x3e, 0x19, 0x30, 0x0c, 0xc9, 0x2b, 0x3f, 0x52, 0xa0, 0xb8, + 0xeb, 0x12, 0xc7, 0xa7, 0xb1, 0x27, 0x70, 0xdf, 0x84, 0x19, 0x71, 0x1e, 0xde, 0xe4, 0x2d, 0xf1, + 0xe7, 0x6e, 0x09, 0xfc, 0xf1, 0x4d, 0x8e, 0xd1, 0x0b, 0xdc, 0xbf, 0x00, 0x3c, 0x81, 0xd3, 0xb9, + 0xe9, 0xf7, 0x02, 0xaf, 0xfc, 0x2c, 0x05, 0x0b, 0x7b, 0xf1, 0x37, 0xd1, 0xab, 0xc8, 0x6e, 0x22, + 0x72, 0xe4, 0xac, 0xb8, 0x2e, 0x15, 0x97, 0x3d, 0x6f, 0xc1, 0xcc, 0x01, 0x2b, 0x60, 0x53, 0x6f, + 0xfb, 0x04, 0xc6, 0xa4, 0x25, 0x85, 0x3f, 0x5f, 0x9c, 0x92, 0xcd, 0xd1, 0x59, 0x49, 0xcd, 0xa4, + 0xea, 0x87, 0x30, 0x13, 0xef, 0x1e, 0x49, 0x1d, 0x4c, 0xc1, 0xeb, 0xfd, 0x2d, 0xb1, 0x5d, 0x50, + 0x99, 0xc6, 0xdd, 0x8c, 0x3e, 0x9e, 0x89, 0xda, 0xa8, 0x5a, 0x85, 0xdb, 0x81, 0x88, 0x3d, 0x3e, + 0x9f, 0x31, 0x69, 0x29, 0xcd, 0x05, 0x9d, 0x93, 0x9d, 0x3a, 0x73, 0x4c, 0x26, 0xee, 0x09, 0xdc, + 0xee, 0x26, 0x8d, 0x0b, 0x3d, 0x74, 0x65, 0xa1, 0xe7, 0x3b, 0x3f, 0xc2, 0x89, 0x89, 0x5e, 0xf9, + 0x0b, 0x05, 0xd4, 0x40, 0xe7, 0x62, 0x06, 0x76, 0x5d, 0xf1, 0x8c, 0xa6, 0xf3, 0xa6, 0x5a, 0xdc, + 0x6e, 0x15, 0x68, 0xfb, 0x2d, 0xf5, 0x2f, 0xc3, 0x94, 0x78, 0x1f, 0x2a, 0x20, 0x82, 0x07, 0xf0, + 0x52, 0xc7, 0x7d, 0xde, 0x8d, 0xbf, 0xc9, 0x64, 0xfb, 0x93, 0x7f, 0x5e, 0xbc, 0x77, 0x44, 0xfc, + 0x46, 0xeb, 0x60, 0xc9, 0x70, 0xed, 0x65, 0xf9, 0x1d, 0x9e, 0xf8, 0xef, 0x0d, 0x6a, 0x1e, 0x2f, + 0xb3, 0x1c, 0x99, 0x72, 0x02, 0xaa, 0xa9, 0x36, 0x3a, 0x6d, 0x17, 0x95, 0x56, 0xfe, 0x38, 0x05, + 0xb3, 0x3d, 0xed, 0x87, 0x9b, 0xce, 0x23, 0x98, 0x0d, 0x05, 0x0b, 0x5e, 0xe2, 0x87, 0x4f, 0x68, + 0xc5, 0x78, 0x66, 0x82, 0x0e, 0xc1, 0x23, 0xfc, 0xe0, 0xb5, 0xec, 0x4b, 0x90, 0x8b, 0x5d, 0x42, + 0x89, 0x01, 0x65, 0xb5, 0xb1, 0xe8, 0x16, 0x8a, 0xaa, 0x2d, 0x98, 0x6d, 0x7f, 0xf7, 0xaf, 0xf3, + 0x09, 0x16, 0x9b, 0x84, 0x34, 0x77, 0x27, 0x8f, 0xfa, 0xcd, 0x57, 0x7f, 0xc3, 0xd7, 0xa6, 0xdb, + 0x3e, 0x16, 0x88, 0x16, 0xc4, 0x97, 0x60, 0xc6, 0x24, 0xf4, 0x69, 0x0b, 0x59, 0xe4, 0x90, 0x60, + 0x33, 0x6e, 0x67, 0x43, 0x5c, 0xc8, 0x9b, 0xf1, 0xe6, 0xd0, 0xc4, 0x2a, 0x7f, 0x99, 0x82, 0xc9, + 0x0d, 0x8c, 0xd7, 0x08, 0x15, 0x67, 0xf7, 0x44, 0x6e, 0x48, 0xea, 0x30, 0x29, 0xbc, 0x87, 0x29, + 0x5b, 0xc4, 0xa5, 0x55, 0x92, 0xcb, 0x63, 0x4e, 0x1f, 0x00, 0xf3, 0x2b, 0xab, 0x3a, 0x4c, 0xfa, + 0x3d, 0x40, 0x93, 0xa4, 0x29, 0x7e, 0x17, 0xe8, 0x0a, 0xe4, 0xe5, 0x27, 0x1d, 0xc8, 0xe6, 0x27, + 0x15, 0xe9, 0x41, 0xbe, 0xe1, 0xc8, 0x09, 0x9a, 0x2a, 0x27, 0x61, 0xe1, 0xfb, 0xc4, 0xb5, 0x5a, + 0x76, 0xa2, 0x20, 0x2c, 0x49, 0x2a, 0xbf, 0xd1, 0xae, 0xc2, 0xba, 0xd1, 0xc0, 0x66, 0xcb, 0xe2, + 0xcf, 0x78, 0x0f, 0x5a, 0x06, 0x9b, 0x85, 0xe8, 0x70, 0x6b, 0x48, 0x1b, 0x13, 0x75, 0xe2, 0xec, + 0xe5, 0x15, 0x18, 0x97, 0x5d, 0xc2, 0x6f, 0x42, 0xc4, 0x73, 0x91, 0x82, 0xa8, 0x0e, 0x3f, 0x02, + 0xe9, 0x34, 0xbc, 0x74, 0xb7, 0xe1, 0x6d, 0x03, 0xf8, 0x44, 0xee, 0x46, 0x03, 0xcf, 0xb0, 0xdc, + 0xcf, 0xd2, 0x7a, 0x4c, 0xbb, 0x96, 0xf5, 0xe5, 0x2f, 0xda, 0xcf, 0xa2, 0x86, 0xfb, 0x59, 0xd4, + 0x16, 0xa8, 0x1d, 0xc8, 0x7b, 0x7b, 0x9b, 0xaa, 0x0a, 0x43, 0x7e, 0x10, 0x7a, 0x86, 0x34, 0xfe, + 0x9b, 0x05, 0x63, 0xdf, 0xb7, 0xba, 0x9e, 0xca, 0xe4, 0x7c, 0xdf, 0x8a, 0xae, 0xca, 0x7f, 0x5f, + 0x81, 0xdc, 0xfb, 0x5c, 0xd1, 0x1a, 0x36, 0x5c, 0xcf, 0xe4, 0x57, 0x7d, 0xdc, 0x88, 0xe4, 0x8c, + 0x29, 0x49, 0xae, 0xfa, 0x18, 0xa1, 0x40, 0x63, 0x38, 0x7e, 0x1c, 0x27, 0xc9, 0x49, 0xb7, 0x1f, + 0xe1, 0x54, 0x7e, 0x5b, 0x81, 0x42, 0x55, 0x44, 0x66, 0xe9, 0x80, 0xd4, 0x12, 0x8c, 0xca, 0x58, + 0x2d, 0x43, 0x7e, 0x50, 0x54, 0x31, 0x8c, 0x7e, 0x8e, 0xce, 0x30, 0xc0, 0xae, 0xfc, 0x9a, 0x02, + 0x39, 0x9e, 0x12, 0x0b, 0x9d, 0xd1, 0xfe, 0xbb, 0xb9, 0x0f, 0x60, 0xca, 0x42, 0x3e, 0xa6, 0xbe, + 0xce, 0x9c, 0x0b, 0x4f, 0x19, 0xdd, 0x48, 0xc2, 0x57, 0x2e, 0xf3, 0x56, 0x92, 0x89, 0xa6, 0x0a, + 0x90, 0x38, 0xdf, 0xca, 0x97, 0x20, 0x1f, 0x25, 0x2e, 0xb5, 0x35, 0x7e, 0xf1, 0xd9, 0x96, 0x80, + 0x89, 0x78, 0x9d, 0xd3, 0xf2, 0xf1, 0x0c, 0x8c, 0x56, 0xfe, 0x48, 0x81, 0xb1, 0x18, 0x90, 0x7a, + 0x0b, 0xb2, 0x9d, 0x41, 0x27, 0xaa, 0x78, 0x91, 0xad, 0x62, 0x7c, 0x9b, 0x9a, 0xbe, 0xc2, 0x36, + 0xb5, 0x62, 0xc3, 0xb0, 0xf8, 0x88, 0xe8, 0x01, 0x28, 0xcd, 0x24, 0xc6, 0xa8, 0x34, 0x19, 0xc9, + 0xd3, 0x24, 0x32, 0x2b, 0x4f, 0x2b, 0xbf, 0xab, 0xc0, 0x62, 0x35, 0x38, 0x11, 0x8e, 0x54, 0xdb, + 0xb6, 0x42, 0x06, 0xba, 0x51, 0xdd, 0x81, 0x82, 0xb4, 0x08, 0x61, 0xff, 0xc1, 0x74, 0x0f, 0xf0, + 0x52, 0x40, 0x32, 0xcb, 0xdb, 0xb1, 0x12, 0xad, 0x7c, 0xa2, 0xc0, 0xad, 0x50, 0xb2, 0x6a, 0x0f, + 0xb1, 0x2e, 0x5e, 0x15, 0xd7, 0x2e, 0x0b, 0x85, 0x5c, 0xbc, 0xb9, 0xbf, 0xf9, 0x6f, 0x84, 0xce, + 0x5f, 0x64, 0xfb, 0x7d, 0xb9, 0xc6, 0x47, 0x24, 0x53, 0xa9, 0x20, 0x0e, 0x54, 0x59, 0xde, 0xef, + 0xb8, 0x76, 0x78, 0xc9, 0xdf, 0x3b, 0xef, 0x9f, 0x63, 0x79, 0xbf, 0xbc, 0xf4, 0x4f, 0x71, 0x6f, + 0x18, 0x96, 0x2b, 0x18, 0xd4, 0xc7, 0x1e, 0x72, 0xfc, 0x6a, 0xcb, 0x6f, 0xb8, 0x1e, 0xf9, 0x48, + 0x38, 0xff, 0x12, 0x8c, 0x1e, 0xb1, 0x5a, 0xf9, 0x3d, 0x77, 0x56, 0x0b, 0x8a, 0xea, 0x5b, 0x30, + 0x22, 0x83, 0x5e, 0x6a, 0x90, 0xa0, 0x27, 0x3b, 0x57, 0xbe, 0x0d, 0x63, 0x55, 0x3e, 0x3e, 0xce, + 0x2c, 0xc2, 0xf7, 0xda, 0xf1, 0xbd, 0xab, 0xe2, 0x7f, 0x57, 0x81, 0xc2, 0xfa, 0xe1, 0x21, 0x1e, + 0x88, 0x47, 0x0d, 0x26, 0x1c, 0xec, 0xeb, 0xa2, 0x28, 0x3f, 0xcf, 0x1c, 0x8c, 0xdd, 0xb8, 0x83, + 0xfd, 0xc7, 0x82, 0x8c, 0x7f, 0x88, 0xa9, 0xce, 0x42, 0x86, 0x50, 0xfd, 0x04, 0x59, 0xf2, 0xc8, + 0x27, 0xa3, 0x8d, 0x12, 0xfa, 0x3e, 0x2b, 0x56, 0x9a, 0x50, 0xe4, 0x93, 0xb3, 0xd5, 0xfe, 0xd8, + 0xa3, 0xc7, 0xfc, 0x74, 0x3e, 0x25, 0x49, 0x5d, 0xed, 0x29, 0xc9, 0x7d, 0x1f, 0x6e, 0xf5, 0xfb, + 0x24, 0x51, 0x05, 0x18, 0xd9, 0x76, 0x0f, 0x5c, 0xf3, 0xac, 0x78, 0x43, 0xad, 0xc0, 0xc2, 0x0a, + 0x3e, 0x22, 0xce, 0x8a, 0xe5, 0x1a, 0xc7, 0xd8, 0xab, 0xdb, 0xc8, 0xf3, 0x57, 0x5d, 0xc7, 0xf7, + 0x90, 0xe1, 0xd3, 0x1d, 0xc7, 0x3a, 0x2b, 0x2a, 0xea, 0x34, 0xa8, 0x3d, 0xea, 0x53, 0x6a, 0x0e, + 0x32, 0xeb, 0x27, 0xd8, 0x3b, 0x73, 0x1d, 0x5c, 0x4c, 0xdf, 0xdf, 0x0b, 0x2c, 0x5f, 0x3c, 0xe7, + 0x51, 0xc7, 0x61, 0x6c, 0xdf, 0xa1, 0x4d, 0x6c, 0xf0, 0x28, 0x5d, 0xbc, 0xc1, 0xd8, 0x8a, 0xb9, + 0x2f, 0x2a, 0xec, 0xf7, 0x2e, 0x6a, 0x51, 0x6c, 0x16, 0x53, 0x6a, 0x01, 0x60, 0x0d, 0xdb, 0xae, + 0x45, 0x68, 0x03, 0x9b, 0xc5, 0xb4, 0x3a, 0x06, 0xa3, 0xfc, 0x19, 0x2c, 0x36, 0x8b, 0x43, 0xf7, + 0xff, 0x3c, 0x25, 0x5f, 0x6c, 0xf0, 0x63, 0xe6, 0x32, 0x8c, 0xed, 0x6f, 0xd7, 0x77, 0xd7, 0x57, + 0x6b, 0x1b, 0xb5, 0xf5, 0xb5, 0xe2, 0x8d, 0xb9, 0xf1, 0xf3, 0xe7, 0xe5, 0x78, 0x95, 0x5a, 0x84, + 0xf4, 0xca, 0xfe, 0x07, 0x45, 0x65, 0x6e, 0xf4, 0xfc, 0x79, 0x99, 0xfd, 0x64, 0xf1, 0xbf, 0xbe, + 0xbe, 0xb9, 0x59, 0x4c, 0xcd, 0x65, 0xce, 0x9f, 0x97, 0xf9, 0x6f, 0xb6, 0x12, 0xea, 0x7b, 0x3b, + 0xbb, 0x3a, 0xeb, 0x9a, 0x9e, 0xcb, 0x9d, 0x3f, 0x2f, 0x87, 0x65, 0xe6, 0xf0, 0xf9, 0x6f, 0x4e, + 0x34, 0x34, 0x97, 0x3f, 0x7f, 0x5e, 0x8e, 0x2a, 0x18, 0xe5, 0x5e, 0xf5, 0xbd, 0x75, 0x4e, 0x39, + 0x2c, 0x28, 0x83, 0x32, 0xa3, 0xe4, 0xbf, 0x39, 0xe5, 0x88, 0xa0, 0x0c, 0x2b, 0xd4, 0x69, 0x18, + 0x59, 0xd9, 0xff, 0x40, 0xdf, 0xdd, 0x29, 0x8e, 0xce, 0xc1, 0xf9, 0xf3, 0xb2, 0x2c, 0x31, 0xfb, + 0x64, 0xed, 0xac, 0x21, 0x33, 0x37, 0x76, 0xfe, 0xbc, 0x1c, 0x14, 0xd5, 0x05, 0x00, 0xd6, 0xa7, + 0xba, 0xb7, 0xb3, 0x55, 0x5b, 0x2d, 0x66, 0xe7, 0x0a, 0xe7, 0xcf, 0xcb, 0xb1, 0x1a, 0xa6, 0x0d, + 0xde, 0x55, 0x76, 0x00, 0xa1, 0x8d, 0x58, 0xd5, 0xfd, 0xbf, 0x57, 0x20, 0xbf, 0x1e, 0x9c, 0x5e, + 0x71, 0x0d, 0xde, 0x82, 0x52, 0x6c, 0x56, 0xda, 0xda, 0xc4, 0x14, 0x89, 0x39, 0x2c, 0x2a, 0x6a, + 0x1e, 0xb2, 0xfc, 0x16, 0x68, 0x83, 0x58, 0x56, 0x31, 0xa5, 0xce, 0xc1, 0x34, 0x2f, 0x6e, 0x21, + 0xdf, 0x68, 0x68, 0xe2, 0x4b, 0x61, 0x3e, 0x31, 0xc5, 0x34, 0x33, 0x90, 0xa8, 0x6d, 0x1b, 0x3f, + 0x13, 0xf5, 0x43, 0xea, 0x4d, 0x98, 0x90, 0x1f, 0x2a, 0xca, 0xaf, 0x7f, 0x89, 0xeb, 0x14, 0x87, + 0x19, 0x94, 0x78, 0xe7, 0xdc, 0xf9, 0x9a, 0xb2, 0x38, 0xc2, 0xa0, 0x76, 0x0e, 0x0f, 0x29, 0xf6, + 0x19, 0x7e, 0x70, 0x00, 0x53, 0x1c, 0x65, 0xd2, 0xd4, 0xcf, 0x1c, 0xbf, 0x81, 0x7d, 0x62, 0x14, + 0x33, 0xf7, 0x3f, 0x09, 0xcc, 0x62, 0x0b, 0xd1, 0x63, 0xa6, 0xda, 0xfd, 0xed, 0xfd, 0x3a, 0xb7, + 0x08, 0xae, 0x5a, 0x51, 0x62, 0xc6, 0x50, 0xdd, 0x0e, 0x8d, 0xa1, 0xba, 0xfd, 0x01, 0x53, 0xb6, + 0xb6, 0xfe, 0x78, 0x7f, 0xb3, 0xaa, 0x15, 0x53, 0x42, 0xd9, 0xb2, 0xc8, 0x94, 0xb9, 0xba, 0xb3, + 0xbd, 0x56, 0xdb, 0xab, 0xed, 0x6c, 0x57, 0xd9, 0xc4, 0x73, 0x65, 0xc6, 0xaa, 0xd4, 0x25, 0x98, + 0x59, 0xab, 0x69, 0xeb, 0xab, 0xac, 0xc8, 0xe6, 0x5b, 0xdf, 0xd1, 0xf4, 0x27, 0xb5, 0xc7, 0x4f, + 0xd6, 0xb5, 0x62, 0x66, 0x6e, 0xe2, 0xfc, 0x79, 0x39, 0xdf, 0x56, 0xd9, 0xde, 0x9f, 0xcf, 0xca, + 0x8e, 0xa6, 0x6f, 0xee, 0xfc, 0xc2, 0xba, 0x56, 0x2c, 0x8a, 0xfe, 0x6d, 0x95, 0xea, 0x3c, 0x8c, + 0xed, 0x7d, 0xb0, 0xbb, 0xae, 0x6f, 0x55, 0xb5, 0xf7, 0xd6, 0xf7, 0x8a, 0x65, 0x31, 0x14, 0x51, + 0x52, 0x67, 0x01, 0x78, 0xe3, 0x66, 0x6d, 0xab, 0xb6, 0x57, 0x7c, 0x77, 0x2e, 0x7b, 0xfe, 0xbc, + 0x3c, 0xcc, 0x0b, 0x2b, 0x8d, 0x1f, 0x7e, 0xba, 0xa0, 0xfc, 0xf8, 0xd3, 0x05, 0xe5, 0x5f, 0x3e, + 0x5d, 0x50, 0xbe, 0xfb, 0xd9, 0xc2, 0x8d, 0x1f, 0x7f, 0xb6, 0x70, 0xe3, 0x1f, 0x3e, 0x5b, 0xb8, + 0xf1, 0x8d, 0xed, 0x58, 0xfe, 0x56, 0x0b, 0x22, 0xcb, 0x26, 0x3a, 0xa0, 0xcb, 0x61, 0x9c, 0x79, + 0xc3, 0x70, 0x3d, 0x1c, 0x2f, 0x36, 0x10, 0x71, 0x96, 0x6d, 0x97, 0xed, 0x23, 0x68, 0xf4, 0xc7, + 0x6d, 0x78, 0xae, 0x77, 0x30, 0xc2, 0x3f, 0x8a, 0xfd, 0xe2, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, + 0x6b, 0x79, 0x42, 0x5e, 0xff, 0x46, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/chain/exchange/types/key.go b/chain/exchange/types/key.go index 7e6a904e..559ed459 100644 --- a/chain/exchange/types/key.go +++ b/chain/exchange/types/key.go @@ -17,8 +17,10 @@ const ( ModuleName = "exchange" // StoreKey to be used when creating the KVStore - StoreKey = ModuleName - TStoreKey = "transient_exchange" + StoreKey = ModuleName + // ObjectStoreKey is the key to access the exchange object store, reset on Commit. + ObjectStoreKey = "object:" + ModuleName + TStoreKey = "transient_exchange" ) const PriceDecimalPlaces = 18 const DefaultQueryOrderbookLimit uint64 = 20 @@ -125,7 +127,10 @@ var ( OrderExpirationMarketsPrefix = []byte{0x86} // prefix to store markets with order expirations PostOnlyModeCancellationKey = []byte{0x87} // key to mark post-only mode cancellation for next BeginBlock - TransientAtomicPerpetualVwapPrefix = []byte{0x88} // prefix for transient atomic perpetual market VWAP data + TransientAtomicPerpetualVwapPrefix = []byte{0x88} // prefix for transient atomic perpetual market VWAP data + ObjectCachedParamsKey = []byte{0x89} // key for cached params in object store (block-scoped) + ObjectCachedWhiteKnightLiquidatorsKey = []byte{0x8a} // key for cached white knight liquidators set in object store (block-scoped) + TransientSyntheticPerpetualFundingVwapPrefix = []byte{0x8b} // prefix for transient synthetic perpetual funding VWAP data ) func GetSubaccountCidKey(subaccountID common.Hash, cid string) []byte { @@ -330,8 +335,10 @@ func GetPaddedPrice(price math.LegacyDec) string { } func getPaddedPriceFromString(price string) string { - components := strings.Split(price, ".") - naturalPart, decimalPart := components[0], components[1] + naturalPart, decimalPart, ok := strings.Cut(price, ".") + if !ok { + panic(fmt.Sprintf("invalid price string: %q", price)) + } return fmt.Sprintf("%032s.%s", naturalPart, decimalPart) } @@ -597,3 +604,8 @@ func GetOrderExpirationMarketPrefix(blockNumber int64) []byte { func GetTransientAtomicPerpetualVwapKey(marketID common.Hash) []byte { return append(TransientAtomicPerpetualVwapPrefix, marketID.Bytes()...) } + +// GetTransientSyntheticPerpetualFundingVwapKey returns the transient store key for synthetic perpetual funding VWAP data for a market +func GetTransientSyntheticPerpetualFundingVwapKey(marketID common.Hash) []byte { + return append(TransientSyntheticPerpetualFundingVwapPrefix, marketID.Bytes()...) +} diff --git a/chain/exchange/types/msgs.go b/chain/exchange/types/msgs.go index d5120105..29419234 100644 --- a/chain/exchange/types/msgs.go +++ b/chain/exchange/types/msgs.go @@ -548,9 +548,15 @@ func (msg MsgInstantSpotMarketLaunch) ValidateBasic() error { if msg.BaseDenom == "" { return errors.Wrap(ErrInvalidBaseDenom, "base denom should not be empty") } + if len(msg.BaseDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidBaseDenom, "base denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } if msg.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } if msg.BaseDenom == msg.QuoteDenom { return ErrSameDenoms } @@ -609,6 +615,9 @@ func (msg MsgInstantPerpetualMarketLaunch) ValidateBasic() error { if msg.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } oracleParams := NewOracleParams(msg.OracleBase, msg.OracleQuote, msg.OracleScaleFactor, msg.OracleType) if err := oracleParams.ValidateBasic(); err != nil { return err @@ -675,12 +684,15 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) ValidateBasic() error { if msg.Ticker == "" || len(msg.Ticker) > MaxTickerLength { return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } - if msg.OracleSymbol == "" { - return errors.Wrap(ErrInvalidOracle, "oracle symbol should not be empty") + if msg.OracleSymbol == "" || len(msg.OracleSymbol) > MaxOracleSymbolLength { + return errors.Wrapf(ErrInvalidOracle, "oracle symbol should not be empty or exceed %d characters", MaxOracleSymbolLength) } if msg.OracleProvider == "" { return errors.Wrap(ErrInvalidOracle, "oracle provider should not be empty") } + if len(msg.OracleProvider) > MaxOracleProviderLength { + return errors.Wrapf(ErrInvalidOracle, "oracle provider should not exceed %d characters", MaxOracleProviderLength) + } if msg.OracleType != oracletypes.OracleType_Provider { return errors.Wrap(ErrInvalidOracleType, msg.OracleType.String()) } @@ -708,6 +720,9 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) ValidateBasic() error { if msg.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } if err := ValidateTickSize(msg.MinPriceTickSize); err != nil { return errors.Wrap(ErrInvalidPriceTickSize, err.Error()) } @@ -757,6 +772,9 @@ func (msg MsgInstantExpiryFuturesMarketLaunch) ValidateBasic() error { if msg.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } oracleParams := NewOracleParams(msg.OracleBase, msg.OracleQuote, msg.OracleScaleFactor, msg.OracleType) if err := oracleParams.ValidateBasic(); err != nil { @@ -1596,9 +1614,8 @@ func (msg *MsgIncreasePositionMargin) ValidateBasic() error { return err } - _, ok := IsValidSubaccountID(msg.DestinationSubaccountId) - if !ok { - return errors.Wrap(ErrBadSubaccountID, msg.DestinationSubaccountId) + if err := CheckValidSubaccountIDOrNonce(senderAddr, msg.DestinationSubaccountId); err != nil { + return err } return nil diff --git a/chain/exchange/types/params.go b/chain/exchange/types/params.go index c18b1f26..3da06eb2 100644 --- a/chain/exchange/types/params.go +++ b/chain/exchange/types/params.go @@ -37,6 +37,12 @@ const ( MaxTickerLength int = 40 + MaxOracleSymbolLength int = 256 + + MaxOracleProviderLength int = 256 + + MaxMarketLaunchDenomLength int = 256 + // MaxHistoricalTradeRecordAge is the maximum age of trade records to track. MaxHistoricalTradeRecordAge = 60 * 5 @@ -49,9 +55,10 @@ const ( // MaxTickSizeDecimalPlaces defines the maximum number of decimal places allowed for tick size // The real max for LegacyDec is 18, but we allow 15 to ensure that we are absolutely safe of any rounding issues MaxTickSizeDecimalPlaces = 15 -) -var DefaultInjAuctionMaxCap = math.NewIntWithDecimal(10_000, 18) + // MaxWhiteKnightLiquidators defines the maximum number of white knight liquidators. + MaxWhiteKnightLiquidators = 1024 +) var MaxBinaryOptionsOrderPrice = math.LegacyOneDec() @@ -238,7 +245,7 @@ func ValidateFixedGasFlag(enabled any) error { return nil } -func ValidateSpotMarketInstantListingFee(i interface{}) error { +func ValidateSpotMarketInstantListingFee(i any) error { v, ok := i.(sdk.Coin) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -251,7 +258,7 @@ func ValidateSpotMarketInstantListingFee(i interface{}) error { return nil } -func ValidateDerivativeMarketInstantListingFee(i interface{}) error { +func ValidateDerivativeMarketInstantListingFee(i any) error { v, ok := i.(sdk.Coin) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -264,7 +271,7 @@ func ValidateDerivativeMarketInstantListingFee(i interface{}) error { return nil } -func ValidateBinaryOptionsMarketInstantListingFee(i interface{}) error { +func ValidateBinaryOptionsMarketInstantListingFee(i any) error { v, ok := i.(sdk.Coin) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -277,7 +284,7 @@ func ValidateBinaryOptionsMarketInstantListingFee(i interface{}) error { return nil } -func ValidateFee(i interface{}) error { +func ValidateFee(i any) error { v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -297,7 +304,7 @@ func ValidateFee(i interface{}) error { return nil } -func ValidateMakerFee(i interface{}) error { +func ValidateMakerFee(i any) error { v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -318,7 +325,7 @@ func ValidateMakerFee(i interface{}) error { return nil } -func ValidateHourlyFundingRateCap(i interface{}) error { +func ValidateHourlyFundingRateCap(i any) error { v, ok := i.(math.LegacyDec) if !ok { @@ -344,7 +351,7 @@ func ValidateHourlyFundingRateCap(i interface{}) error { return nil } -func ValidateHourlyInterestRate(i interface{}) error { +func ValidateHourlyInterestRate(i any) error { v, ok := i.(math.LegacyDec) if !ok { @@ -366,7 +373,7 @@ func ValidateHourlyInterestRate(i interface{}) error { return nil } -func ValidateTickSize(i interface{}) error { +func ValidateTickSize(i any) error { v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -395,17 +402,24 @@ func ValidateTickSize(i interface{}) error { // v can be a decimal (e.g. 1e-15) so we scale by 10^15 scaledValue := v.Mul(scaleFactor) - // Check if scaledValue is a power of 10 using repeated division - if scaledValue.LTE(math.LegacyZeroDec()) { + if !isPowerOf10(scaledValue) { return errors.New("unsupported tick size") } - // Handle the special case of 1 (which is 10^0) - if scaledValue.Equal(math.LegacyOneDec()) { - return nil + return nil +} + +// isPowerOf10 checks whether the given decimal is a positive power of 10 (including 10^0 = 1). +func isPowerOf10(v math.LegacyDec) bool { + if v.LTE(math.LegacyZeroDec()) { + return false + } + + if v.Equal(math.LegacyOneDec()) { + return true } - temp := scaledValue + temp := v ten := math.LegacyNewDec(10) // Keep dividing by 10 while the result is >= 10 @@ -413,20 +427,16 @@ func ValidateTickSize(i interface{}) error { quotient := temp.Quo(ten) // Check if the division was exact (no remainder) if !quotient.Mul(ten).Equal(temp) { - return errors.New("unsupported tick size") + return false } temp = quotient } // After all divisions, we should have exactly 1 - if !temp.Equal(math.LegacyOneDec()) { - return fmt.Errorf("unsupported tick size") - } - - return nil + return temp.Equal(math.LegacyOneDec()) } -func ValidateMinNotional(i interface{}) error { +func ValidateMinNotional(i any) error { v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -443,7 +453,7 @@ func ValidateMinNotional(i interface{}) error { return nil } -func ValidateMarginRatio(i interface{}) error { +func ValidateMarginRatio(i any) error { v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -462,7 +472,7 @@ func ValidateMarginRatio(i interface{}) error { return nil } -func ValidateFundingInterval(i interface{}) error { +func ValidateFundingInterval(i any) error { v, ok := i.(int64) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -475,7 +485,7 @@ func ValidateFundingInterval(i interface{}) error { return nil } -func ValidatePostOnlyModeHeightThreshold(i interface{}) error { +func ValidatePostOnlyModeHeightThreshold(i any) error { v, ok := i.(int64) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -488,7 +498,7 @@ func ValidatePostOnlyModeHeightThreshold(i interface{}) error { return nil } -func ValidateAdmins(i interface{}) error { +func ValidateAdmins(i any) error { v, ok := i.([]string) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -511,7 +521,34 @@ func ValidateAdmins(i interface{}) error { return nil } -func ValidateFundingMultiple(i interface{}) error { +func ValidateWhiteKnightLiquidators(i any) error { + v, ok := i.([]string) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if len(v) > MaxWhiteKnightLiquidators { + return fmt.Errorf("number of white knight liquidators cannot exceed %d: %d", MaxWhiteKnightLiquidators, len(v)) + } + + liquidators := make(map[string]struct{}) + + for _, liquidator := range v { + liquidatorAddr, err := sdk.AccAddressFromBech32(liquidator) + if err != nil { + return fmt.Errorf("invalid white knight liquidator address: %s", liquidator) + } + + if _, found := liquidators[liquidatorAddr.String()]; found { + return fmt.Errorf("duplicate white knight liquidator: %s", liquidator) + } + liquidators[liquidatorAddr.String()] = struct{}{} + } + + return nil +} + +func ValidateFundingMultiple(i any) error { v, ok := i.(int64) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -524,7 +561,7 @@ func ValidateFundingMultiple(i interface{}) error { return nil } -func ValidateDerivativeOrderSideCount(i interface{}) error { +func ValidateDerivativeOrderSideCount(i any) error { v, ok := i.(uint32) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -537,7 +574,7 @@ func ValidateDerivativeOrderSideCount(i interface{}) error { return nil } -func ValidateInjRewardStakedRequirementThreshold(i interface{}) error { +func ValidateInjRewardStakedRequirementThreshold(i any) error { v, ok := i.(math.Int) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -554,7 +591,7 @@ func ValidateInjRewardStakedRequirementThreshold(i interface{}) error { return nil } -func ValidateTradingRewardsVestingDuration(i interface{}) error { +func ValidateTradingRewardsVestingDuration(i any) error { v, ok := i.(int64) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -567,7 +604,7 @@ func ValidateTradingRewardsVestingDuration(i interface{}) error { return nil } -func ValidateLiquidatorRewardShareRate(i interface{}) error { +func ValidateLiquidatorRewardShareRate(i any) error { v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -586,7 +623,11 @@ func ValidateLiquidatorRewardShareRate(i interface{}) error { return nil } -func ValidateAtomicMarketOrderAccessLevel(i interface{}) error { +func ValidateWhiteKnightLiquidatorRewardShareRate(i any) error { + return ValidateLiquidatorRewardShareRate(i) +} + +func ValidateAtomicMarketOrderAccessLevel(i any) error { v, ok := i.(AtomicMarketOrderAccessLevel) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -597,7 +638,7 @@ func ValidateAtomicMarketOrderAccessLevel(i interface{}) error { return nil } -func ValidateAtomicMarketOrderFeeMultiplier(i interface{}) error { +func ValidateAtomicMarketOrderFeeMultiplier(i any) error { v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -615,7 +656,7 @@ func ValidateAtomicMarketOrderFeeMultiplier(i interface{}) error { return nil } -func ValidateBool(i interface{}) error { +func ValidateBool(i any) error { _, ok := i.(bool) if !ok { return fmt.Errorf("invalid parameter type: %T", i) diff --git a/chain/exchange/types/proposal.go b/chain/exchange/types/proposal.go index 58c95894..d4564ef4 100644 --- a/chain/exchange/types/proposal.go +++ b/chain/exchange/types/proposal.go @@ -379,9 +379,15 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error { if p.BaseDenom == "" { return errors.Wrap(ErrInvalidBaseDenom, "base denom should not be empty") } + if len(p.BaseDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidBaseDenom, "base denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } if p.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } if p.BaseDenom == p.QuoteDenom { return ErrSameDenoms } @@ -670,16 +676,22 @@ func (p *OracleParams) ValidateBasic() error { if p.OracleBase == "" { return errors.Wrap(ErrInvalidOracle, "oracle base should not be empty") } + if len(p.OracleBase) > MaxOracleSymbolLength { + return errors.Wrapf(ErrInvalidOracle, "oracle base should not exceed %d characters", MaxOracleSymbolLength) + } if p.OracleQuote == "" { return errors.Wrap(ErrInvalidOracle, "oracle quote should not be empty") } + if len(p.OracleQuote) > MaxOracleSymbolLength { + return errors.Wrapf(ErrInvalidOracle, "oracle quote should not exceed %d characters", MaxOracleSymbolLength) + } if p.OracleBase == p.OracleQuote { return ErrSameOracles } switch p.OracleType { - case oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase, oracletypes.OracleType_Chainlink, oracletypes.OracleType_Razor, - oracletypes.OracleType_Dia, oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth, oracletypes.OracleType_Provider, - oracletypes.OracleType_Stork, oracletypes.OracleType_ChainlinkDataStreams: + case oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase, oracletypes.OracleType_Razor, + oracletypes.OracleType_Dia, oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth, + oracletypes.OracleType_Provider, oracletypes.OracleType_Stork, oracletypes.OracleType_ChainlinkDataStreams: default: return errors.Wrap(ErrInvalidOracleType, p.OracleType.String()) @@ -696,9 +708,15 @@ func (p *ProviderOracleParams) ValidateBasic() error { if p.Symbol == "" { return errors.Wrap(ErrInvalidOracle, "oracle symbol should not be empty") } + if len(p.Symbol) > MaxOracleSymbolLength { + return errors.Wrapf(ErrInvalidOracle, "oracle symbol should not exceed %d characters", MaxOracleSymbolLength) + } if p.Provider == "" { return errors.Wrap(ErrInvalidOracle, "oracle provider should not be empty") } + if len(p.Provider) > MaxOracleProviderLength { + return errors.Wrapf(ErrInvalidOracle, "oracle provider should not exceed %d characters", MaxOracleProviderLength) + } if p.OracleType != oracletypes.OracleType_Provider { return errors.Wrap(ErrInvalidOracleType, p.OracleType.String()) @@ -765,6 +783,9 @@ func (p *PerpetualMarketLaunchProposal) ValidateBasic() error { if p.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } oracleParams := NewOracleParams(p.OracleBase, p.OracleQuote, p.OracleScaleFactor, p.OracleType) if err := oracleParams.ValidateBasic(); err != nil { @@ -863,6 +884,9 @@ func (p *ExpiryFuturesMarketLaunchProposal) ValidateBasic() error { if p.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } oracleParams := NewOracleParams(p.OracleBase, p.OracleQuote, p.OracleScaleFactor, p.OracleType) if err := oracleParams.ValidateBasic(); err != nil { @@ -1392,12 +1416,15 @@ func (p *BinaryOptionsMarketLaunchProposal) ValidateBasic() error { if p.Ticker == "" || len(p.Ticker) > MaxTickerLength { return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } - if p.OracleSymbol == "" { - return errors.Wrap(ErrInvalidOracle, "oracle symbol should not be empty") + if p.OracleSymbol == "" || len(p.OracleSymbol) > MaxOracleSymbolLength { + return errors.Wrapf(ErrInvalidOracle, "oracle symbol should not be empty or exceed %d characters", MaxOracleSymbolLength) } if p.OracleProvider == "" { return errors.Wrap(ErrInvalidOracle, "oracle provider should not be empty") } + if len(p.OracleProvider) > MaxOracleProviderLength { + return errors.Wrapf(ErrInvalidOracle, "oracle provider should not exceed %d characters", MaxOracleProviderLength) + } if p.OracleType != oracletypes.OracleType_Provider { return errors.Wrap(ErrInvalidOracleType, p.OracleType.String()) } @@ -1418,6 +1445,9 @@ func (p *BinaryOptionsMarketLaunchProposal) ValidateBasic() error { if p.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > MaxMarketLaunchDenomLength { + return errors.Wrapf(ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", MaxMarketLaunchDenomLength) + } if err := ValidateMakerFee(p.MakerFeeRate); err != nil { return err } diff --git a/chain/exchange/types/v2/authz.go b/chain/exchange/types/v2/authz.go index 081bec0d..ec819ad7 100644 --- a/chain/exchange/types/v2/authz.go +++ b/chain/exchange/types/v2/authz.go @@ -62,11 +62,31 @@ func reduceToSet(slice []string) []string { i := 0 for k := range set { output[i] = k - i += 1 + i++ } return output } +type batchUpdateOrdersAuthzCheck struct { + field string + check func(*BatchUpdateOrdersAuthz, *MsgBatchUpdateOrders) error +} + +var batchUpdateOrdersAuthzChecks = []batchUpdateOrdersAuthzCheck{ + {field: "SpotOrdersToCreate", check: (*BatchUpdateOrdersAuthz).authorizeSpotOrdersToCreate}, + {field: "SpotOrdersToCancel", check: (*BatchUpdateOrdersAuthz).authorizeSpotOrdersToCancel}, + {field: "SpotMarketIdsToCancelAll", check: (*BatchUpdateOrdersAuthz).authorizeSpotMarketIDsToCancelAll}, + {field: "SpotMarketOrdersToCreate", check: (*BatchUpdateOrdersAuthz).authorizeSpotMarketOrdersToCreate}, + {field: "DerivativeOrdersToCreate", check: (*BatchUpdateOrdersAuthz).authorizeDerivativeOrdersToCreate}, + {field: "DerivativeOrdersToCancel", check: (*BatchUpdateOrdersAuthz).authorizeDerivativeOrdersToCancel}, + {field: "DerivativeMarketIdsToCancelAll", check: (*BatchUpdateOrdersAuthz).authorizeDerivativeMarketIDsToCancelAll}, + {field: "DerivativeMarketOrdersToCreate", check: (*BatchUpdateOrdersAuthz).authorizeDerivativeMarketOrdersToCreate}, + {field: "BinaryOptionsOrdersToCreate", check: (*BatchUpdateOrdersAuthz).authorizeBinaryOptionsOrdersToCreate}, + {field: "BinaryOptionsOrdersToCancel", check: (*BatchUpdateOrdersAuthz).authorizeBinaryOptionsOrdersToCancel}, + {field: "BinaryOptionsMarketIdsToCancelAll", check: (*BatchUpdateOrdersAuthz).authorizeBinaryOptionsMarketIDsToCancelAll}, + {field: "BinaryOptionsMarketOrdersToCreate", check: (*BatchUpdateOrdersAuthz).authorizeBinaryOptionsMarketOrdersToCreate}, +} + func (a *BatchUpdateOrdersAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgBatchUpdateOrders{}) } @@ -77,62 +97,12 @@ func (a *BatchUpdateOrdersAuthz) Accept(_ context.Context, msg sdk.Msg) (authz.A return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") } - // check authorized spot markets - for _, o := range ordersToUpdate.SpotOrdersToCreate { - if !find(a.SpotMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested spot market to create orders is unauthorized") - } - if o.OrderInfo.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - for _, o := range ordersToUpdate.SpotOrdersToCancel { - if !find(a.SpotMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested spot market to cancel orders is unauthorized") - } - if o.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - for _, id := range ordersToUpdate.SpotMarketIdsToCancelAll { - if !find(a.SpotMarkets, id) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested spot market to cancel all orders is unauthorized") - } - - if ordersToUpdate.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") + for _, authzCheck := range batchUpdateOrdersAuthzChecks { + if err := authzCheck.check(a, ordersToUpdate); err != nil { + return authz.AcceptResponse{}, err } } - // check authorized derivative markets - for _, o := range ordersToUpdate.DerivativeOrdersToCreate { - if !find(a.DerivativeMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested derivative market to create orders is unauthorized") - } - if o.OrderInfo.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - for _, o := range ordersToUpdate.DerivativeOrdersToCancel { - if !find(a.DerivativeMarkets, o.MarketId) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested derivative market to cancel orders is unauthorized") - } - if o.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - for _, id := range ordersToUpdate.DerivativeMarketIdsToCancelAll { - if !find(a.DerivativeMarkets, id) { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested derivative market to cancel all orders is unauthorized") - } - - if ordersToUpdate.SubaccountId != a.SubaccountId { - return authz.AcceptResponse{}, sdkerrors.ErrUnauthorized.Wrapf("requested subaccount is unauthorized") - } - } - - // TODO add check for BO markets? - return authz.AcceptResponse{Accept: true, Delete: false, Updated: nil}, nil } @@ -143,25 +113,142 @@ func (a *BatchUpdateOrdersAuthz) ValidateBasic() error { if len(a.SpotMarkets) == 0 && len(a.DerivativeMarkets) == 0 { return sdkerrors.ErrLogic.Wrapf("invalid markets array length") } - if len(a.SpotMarkets) > AuthorizedMarketsLimit() || len(a.DerivativeMarkets) > AuthorizedMarketsLimit() { - return sdkerrors.ErrLogic.Wrapf("invalid markets array length") - } - spotMarketsSet := reduceToSet(a.SpotMarkets) - derivativeMarketsSet := reduceToSet(a.DerivativeMarkets) - if len(a.SpotMarkets) != len(spotMarketsSet) || len(a.DerivativeMarkets) != len(derivativeMarketsSet) { - return sdkerrors.ErrLogic.Wrapf("cannot have duplicate markets") - } - for _, m := range a.SpotMarkets { - if !types.IsHexHash(m) { - return sdkerrors.ErrLogic.Wrap("invalid spot market id to authorize") - } - } - for _, m := range a.DerivativeMarkets { - if !types.IsHexHash(m) { - return sdkerrors.ErrLogic.Wrap("invalid derivative market id to authorize") - } - } - return nil + if err := types.ValidateAuthorizedMarkets(a.SpotMarkets, "invalid spot market id to authorize", AuthorizedMarketsLimit()); err != nil { + return err + } + + return types.ValidateAuthorizedMarkets(a.DerivativeMarkets, "invalid derivative market id to authorize", AuthorizedMarketsLimit()) +} + +func (a *BatchUpdateOrdersAuthz) authorizeSpotOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.SpotMarkets, + a.SubaccountId, + ordersToUpdate.SpotOrdersToCreate, + func(order *SpotOrder) string { return order.MarketId }, + func(order *SpotOrder) string { return order.OrderInfo.SubaccountId }, + "requested spot market to create orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeSpotOrdersToCancel(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.SpotMarkets, + a.SubaccountId, + ordersToUpdate.SpotOrdersToCancel, + func(order *OrderData) string { return order.MarketId }, + func(order *OrderData) string { return order.SubaccountId }, + "requested spot market to cancel orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeSpotMarketIDsToCancelAll(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeCancelAll( + a.SpotMarkets, + a.SubaccountId, + ordersToUpdate.SubaccountId, + ordersToUpdate.SpotMarketIdsToCancelAll, + "requested spot market to cancel all orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeSpotMarketOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.SpotMarkets, + a.SubaccountId, + ordersToUpdate.SpotMarketOrdersToCreate, + func(order *SpotOrder) string { return order.MarketId }, + func(order *SpotOrder) string { return order.OrderInfo.SubaccountId }, + "requested spot market to create orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeDerivativeOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.DerivativeOrdersToCreate, + func(order *DerivativeOrder) string { return order.MarketId }, + func(order *DerivativeOrder) string { return order.OrderInfo.SubaccountId }, + "requested derivative market to create orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeDerivativeOrdersToCancel(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.DerivativeOrdersToCancel, + func(order *OrderData) string { return order.MarketId }, + func(order *OrderData) string { return order.SubaccountId }, + "requested derivative market to cancel orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeDerivativeMarketIDsToCancelAll(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeCancelAll( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.SubaccountId, + ordersToUpdate.DerivativeMarketIdsToCancelAll, + "requested derivative market to cancel all orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeDerivativeMarketOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.DerivativeMarketOrdersToCreate, + func(order *DerivativeOrder) string { return order.MarketId }, + func(order *DerivativeOrder) string { return order.OrderInfo.SubaccountId }, + "requested derivative market to create orders is unauthorized", + ) +} + +// BatchUpdateOrdersAuthz only carries spot and derivative allowlists, so +// binary options share the derivative market authorization set. +func (a *BatchUpdateOrdersAuthz) authorizeBinaryOptionsOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.BinaryOptionsOrdersToCreate, + func(order *DerivativeOrder) string { return order.MarketId }, + func(order *DerivativeOrder) string { return order.OrderInfo.SubaccountId }, + "requested binary options market to create orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeBinaryOptionsOrdersToCancel(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.BinaryOptionsOrdersToCancel, + func(order *OrderData) string { return order.MarketId }, + func(order *OrderData) string { return order.SubaccountId }, + "requested binary options market to cancel orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeBinaryOptionsMarketIDsToCancelAll(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeCancelAll( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.SubaccountId, + ordersToUpdate.BinaryOptionsMarketIdsToCancelAll, + "requested binary options market to cancel all orders is unauthorized", + ) +} + +func (a *BatchUpdateOrdersAuthz) authorizeBinaryOptionsMarketOrdersToCreate(ordersToUpdate *MsgBatchUpdateOrders) error { + return types.AuthorizeOrders( + a.DerivativeMarkets, + a.SubaccountId, + ordersToUpdate.BinaryOptionsMarketOrdersToCreate, + func(order *DerivativeOrder) string { return order.MarketId }, + func(order *DerivativeOrder) string { return order.OrderInfo.SubaccountId }, + "requested binary options market to create orders is unauthorized", + ) } func (a *CreateDerivativeLimitOrderAuthz) MsgTypeURL() string { diff --git a/chain/exchange/types/v2/derivative.go b/chain/exchange/types/v2/derivative.go index fe4d6cd4..9f86cae0 100644 --- a/chain/exchange/types/v2/derivative.go +++ b/chain/exchange/types/v2/derivative.go @@ -256,22 +256,6 @@ func (e *DerivativeMatchingExpansionData) AddNewSellRestingLimitOrder(order *Der e.NewRestingLimitSellOrders = append(e.NewRestingLimitSellOrders, order) } -func (e *DerivativeMatchingExpansionData) SetRestingLimitBuyOrderCancels(orders []*DerivativeLimitOrder) { - e.RestingLimitBuyOrderCancels = orders -} - -func (e *DerivativeMatchingExpansionData) SetRestingLimitSellOrderCancels(orders []*DerivativeLimitOrder) { - e.RestingLimitSellOrderCancels = orders -} - -func (e *DerivativeMatchingExpansionData) SetTransientLimitBuyOrderCancels(orders []*DerivativeLimitOrder) { - e.TransientLimitBuyOrderCancels = orders -} - -func (e *DerivativeMatchingExpansionData) SetTransientLimitSellOrderCancels(orders []*DerivativeLimitOrder) { - e.TransientLimitSellOrderCancels = orders -} - func (e *DerivativeMatchingExpansionData) GetLimitMatchingDerivativeBatchExecutionData( market DerivativeMarketI, markPrice math.LegacyDec, @@ -449,7 +433,15 @@ func (e *DerivativeMatchingExpansionData) applyCancellationsAndGetDerivativeLimi for idx := range e.TransientLimitBuyOrderCancels { order := e.TransientLimitBuyOrderCancels[idx] - applyDerivativeLimitCancellation(order, takerFeeRate, depositDeltas, market) + // For orders that partially filled before being cancelled in the same FBA run, + // ApplyPositionDeltaAndGetDerivativeLimitOrderStateExpansion already credited + // (takerRate − makerRate) × price × cancelledQty via unmatchedFeeRefund. + // Using makerFeeRate here avoids double-counting that differential. + transientCancelFeeRate := takerFeeRate + if _, ok := e.PartialCancelOrders[order.Hash()]; ok { + transientCancelFeeRate = makerFeeRate + } + applyDerivativeLimitCancellation(order, transientCancelFeeRate, depositDeltas, market) cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{ MarketId: marketIDHex, IsLimitCancel: true, @@ -464,7 +456,12 @@ func (e *DerivativeMatchingExpansionData) applyCancellationsAndGetDerivativeLimi for idx := range e.TransientLimitSellOrderCancels { order := e.TransientLimitSellOrderCancels[idx] - applyDerivativeLimitCancellation(order, takerFeeRate, depositDeltas, market) + // Same reasoning as the buy loop above. + transientCancelFeeRate := takerFeeRate + if _, ok := e.PartialCancelOrders[order.Hash()]; ok { + transientCancelFeeRate = makerFeeRate + } + applyDerivativeLimitCancellation(order, transientCancelFeeRate, depositDeltas, market) cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{ MarketId: marketIDHex, IsLimitCancel: true, @@ -875,35 +872,40 @@ func (p *DerivativeVwapInfo) GetSortedBinaryOptionsMarketIDs() []common.Hash { return binaryOptionsMarketIDs } -// ComputeSyntheticVwapUnitDelta returns (price - markPrice) / markPrice -func (p *DerivativeVwapInfo) ComputeSyntheticVwapUnitDelta(marketID common.Hash) math.LegacyDec { +// ComputeSyntheticVwapUnitDelta returns (price - markPrice) / markPrice for a supplied benchmark mark. +func (p *DerivativeVwapInfo) ComputeSyntheticVwapUnitDelta(marketID common.Hash, markPrice math.LegacyDec) math.LegacyDec { vwapInfo := p.PerpetualVwapInfo[marketID] - return vwapInfo.VwapData.Price.Sub(*vwapInfo.MarkPrice).Quo(*vwapInfo.MarkPrice) + return vwapInfo.VwapData.Price.Sub(markPrice).Quo(markPrice) } -// MergeAtomicPerpetualVwap merges accumulated atomic order VWAP data into this DerivativeVwapInfo. -func (p *DerivativeVwapInfo) MergeAtomicPerpetualVwap(atomicVwapData map[common.Hash]*VwapInfo) { - for marketID, atomicInfo := range atomicVwapData { - if atomicInfo == nil || atomicInfo.MarkPrice == nil || atomicInfo.VwapData == nil { +// MergePerpetualVwap merges accumulated perpetual-market VWAP data into this DerivativeVwapInfo. +func (p *DerivativeVwapInfo) MergePerpetualVwap(perpetualVwapData map[common.Hash]*VwapInfo) { + for marketID, incomingInfo := range perpetualVwapData { + if incomingInfo == nil || incomingInfo.MarkPrice == nil || incomingInfo.VwapData == nil { continue } - if atomicInfo.VwapData.Quantity.IsZero() { + if incomingInfo.VwapData.Quantity.IsZero() { continue } existingInfo := p.PerpetualVwapInfo[marketID] if existingInfo == nil { - // No existing VWAP for this market, just use the atomic data - p.PerpetualVwapInfo[marketID] = atomicInfo + // No existing VWAP for this market, just use the incoming data. + p.PerpetualVwapInfo[marketID] = incomingInfo continue } - // Merge the VWAP data: newVwap = (existingPrice * existingQty + atomicPrice * atomicQty) / (existingQty + atomicQty) - existingInfo.VwapData = existingInfo.VwapData.ApplyExecution(atomicInfo.VwapData.Price, atomicInfo.VwapData.Quantity) + // Merge the VWAP data: newVwap = (existingPrice * existingQty + incomingPrice * incomingQty) / (existingQty + incomingQty) + existingInfo.VwapData = existingInfo.VwapData.ApplyExecution(incomingInfo.VwapData.Price, incomingInfo.VwapData.Quantity) } } +// MergeAtomicPerpetualVwap merges accumulated atomic order VWAP data into this DerivativeVwapInfo. +func (p *DerivativeVwapInfo) MergeAtomicPerpetualVwap(atomicVwapData map[common.Hash]*VwapInfo) { + p.MergePerpetualVwap(atomicVwapData) +} + type PositionState struct { Position *Position } diff --git a/chain/exchange/types/v2/derivative_orders.go b/chain/exchange/types/v2/derivative_orders.go index ffac2e2f..02690fe6 100644 --- a/chain/exchange/types/v2/derivative_orders.go +++ b/chain/exchange/types/v2/derivative_orders.go @@ -202,15 +202,26 @@ func (m *DerivativeLimitOrder) GetCancelRefundAmount(feeRate math.LegacyDec) mat marginHoldRefund := math.LegacyZeroDec() if m.IsVanilla() { // negative fees are only accounted for upon matching - positiveFeePart := math.LegacyMaxDec(math.LegacyZeroDec(), feeRate) //nolint:all // Refund = (FillableQuantity / Quantity) * (Margin + Price * Quantity * feeRate) - notional := m.OrderInfo.Price.Mul(m.OrderInfo.Quantity) - marginHoldRefund = m.Fillable.Mul(m.Margin.Add(notional.Mul(positiveFeePart))).Quo(m.OrderInfo.Quantity) + marginHoldRefund = m.Fillable.Mul(m.GetMarginHold(feeRate)).Quo(m.OrderInfo.Quantity) } return marginHoldRefund } +func getMarginHold(margin, notional, feeRate math.LegacyDec) math.LegacyDec { + positiveFeeRatePart := math.LegacyMaxDec(feeRate, math.LegacyZeroDec()) + return margin.Add(notional.Mul(positiveFeeRatePart)) +} + +func (m *DerivativeOrder) GetMarginHold(feeRate math.LegacyDec) math.LegacyDec { + return getMarginHold(m.Margin, m.OrderInfo.GetNotional(), feeRate) +} + +func (m *DerivativeLimitOrder) GetMarginHold(feeRate math.LegacyDec) math.LegacyDec { + return getMarginHold(m.Margin, m.OrderInfo.GetNotional(), feeRate) +} + func (m *DerivativeOrder) CheckTickSize(minPriceTickSize, minQuantityTickSize math.LegacyDec) error { if types.BreachesMinimumTickSize(m.OrderInfo.Price, minPriceTickSize) { return errors.Wrapf( @@ -258,10 +269,8 @@ func (m *DerivativeOrder) CheckMarginAndGetMarginHold( initialMarginRatio, executionMarkPrice, feeRate math.LegacyDec, marketType v1.MarketType, oracleScaleFactor uint32, ) (marginHold math.LegacyDec, err error) { notional := m.OrderInfo.Price.Mul(m.OrderInfo.Quantity) - positiveFeeRatePart := math.LegacyMaxDec(feeRate, math.LegacyZeroDec()) - feeAmount := notional.Mul(positiveFeeRatePart) - marginHold = m.Margin.Add(feeAmount) + marginHold = m.GetMarginHold(feeRate) if marketType == v1.MarketType_BinaryOption { requiredMargin := m.GetRequiredBinaryOptionsMargin(oracleScaleFactor) if !m.Margin.Equal(requiredMargin) { diff --git a/chain/exchange/types/v2/exchange.pb.go b/chain/exchange/types/v2/exchange.pb.go index f7442860..887f8f77 100644 --- a/chain/exchange/types/v2/exchange.pb.go +++ b/chain/exchange/types/v2/exchange.pb.go @@ -209,8 +209,10 @@ type Params struct { MarginDecreasePriceTimestampThresholdSeconds int64 `protobuf:"varint,26,opt,name=margin_decrease_price_timestamp_threshold_seconds,json=marginDecreasePriceTimestampThresholdSeconds,proto3" json:"margin_decrease_price_timestamp_threshold_seconds,omitempty"` // List of addresses that are allowed to perform exchange admin operations ExchangeAdmins []string `protobuf:"bytes,27,rep,name=exchange_admins,json=exchangeAdmins,proto3" json:"exchange_admins,omitempty"` - // inj_auction_max_cap defines the maximum cap for INJ sent to auction - InjAuctionMaxCap cosmossdk_io_math.Int `protobuf:"bytes,28,opt,name=inj_auction_max_cap,json=injAuctionMaxCap,proto3,customtype=cosmossdk.io/math.Int" json:"inj_auction_max_cap"` + // inj_auction_max_cap defines the maximum cap for INJ sent to auction. + // Deprecated: the cap is now driven by the auction module's InjBasketMaxCap; + // this field is ignored. + InjAuctionMaxCap cosmossdk_io_math.Int `protobuf:"bytes,28,opt,name=inj_auction_max_cap,json=injAuctionMaxCap,proto3,customtype=cosmossdk.io/math.Int" json:"inj_auction_max_cap"` // Deprecated: Do not use. // fixed_gas_enabled indicates if msg server will consume fixed gas amount for // certain msg types FixedGasEnabled bool `protobuf:"varint,29,opt,name=fixed_gas_enabled,json=fixedGasEnabled,proto3" json:"fixed_gas_enabled,omitempty"` @@ -232,9 +234,16 @@ type Params struct { // mode will be enabled after the downtime-detector module detects a chain // downtime PostOnlyModeBlocksAmountAfterDowntime uint64 `protobuf:"varint,35,opt,name=post_only_mode_blocks_amount_after_downtime,json=postOnlyModeBlocksAmountAfterDowntime,proto3" json:"post_only_mode_blocks_amount_after_downtime,omitempty"` + // DEPRECATED, left for upgrade purposes // Contracts that exchange will be listening to pause markets denominated in // respective erc20: denoms, with their pause event signatures - EnforcedRestrictionsContracts []EnforcedRestrictionsContract `protobuf:"bytes,36,rep,name=enforced_restrictions_contracts,json=enforcedRestrictionsContracts,proto3" json:"enforced_restrictions_contracts"` + DeprecatedEnforcedRestrictionsContracts []EnforcedRestrictionsContract `protobuf:"bytes,36,rep,name=deprecated_enforced_restrictions_contracts,json=deprecatedEnforcedRestrictionsContracts,proto3" json:"deprecated_enforced_restrictions_contracts"` + // white_knight_liquidators defines addresses that can liquidate positions + // with a dedicated white-knight reward share in positive payout liquidations + WhiteKnightLiquidators []string `protobuf:"bytes,37,rep,name=white_knight_liquidators,json=whiteKnightLiquidators,proto3" json:"white_knight_liquidators,omitempty"` + // white_knight_liquidator_reward_share_rate defines the ratio of the split of + // the surplus collateral that goes to a white knight liquidator + WhiteKnightLiquidatorRewardShareRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,38,opt,name=white_knight_liquidator_reward_share_rate,json=whiteKnightLiquidatorRewardShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"white_knight_liquidator_reward_share_rate"` } func (m *Params) Reset() { *m = Params{} } @@ -389,9 +398,16 @@ func (m *Params) GetPostOnlyModeBlocksAmountAfterDowntime() uint64 { return 0 } -func (m *Params) GetEnforcedRestrictionsContracts() []EnforcedRestrictionsContract { +func (m *Params) GetDeprecatedEnforcedRestrictionsContracts() []EnforcedRestrictionsContract { if m != nil { - return m.EnforcedRestrictionsContracts + return m.DeprecatedEnforcedRestrictionsContracts + } + return nil +} + +func (m *Params) GetWhiteKnightLiquidators() []string { + if m != nil { + return m.WhiteKnightLiquidators } return nil } @@ -2270,209 +2286,213 @@ func init() { } var fileDescriptor_0b5851fb01a33564 = []byte{ - // 3229 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xc9, 0x6f, 0x1c, 0xc7, - 0xb9, 0x57, 0x0f, 0xb7, 0xe1, 0x47, 0x0e, 0x39, 0x2c, 0x6e, 0xc3, 0x9d, 0x6a, 0x49, 0x16, 0x2d, - 0x5b, 0xe4, 0x93, 0x0c, 0x19, 0x7e, 0xd2, 0xdb, 0x48, 0x8d, 0x28, 0xd1, 0x26, 0x25, 0xba, 0x49, - 0x0b, 0x0f, 0x36, 0x9e, 0x1b, 0xc5, 0xee, 0xe2, 0x4c, 0x89, 0xbd, 0x0c, 0xbb, 0x6a, 0x68, 0xf2, - 0x05, 0x39, 0x18, 0x30, 0x90, 0xc0, 0xb9, 0x38, 0xb9, 0x25, 0x88, 0x01, 0x1f, 0x12, 0x04, 0xc8, - 0x29, 0x87, 0x1c, 0x73, 0x08, 0x10, 0x04, 0xf0, 0x21, 0x01, 0x8c, 0x1c, 0x82, 0x20, 0x07, 0x27, - 0xb0, 0x0f, 0x31, 0x72, 0xce, 0x1f, 0x10, 0xd4, 0xd2, 0xcb, 0x0c, 0x39, 0xe4, 0x8c, 0x9c, 0x00, - 0xb9, 0x48, 0xd3, 0x55, 0xdf, 0xf7, 0xfb, 0xbe, 0xaa, 0xfa, 0xd6, 0x2a, 0xc2, 0x55, 0x1a, 0x3c, - 0x23, 0x0e, 0xa7, 0x47, 0x64, 0x85, 0x1c, 0x3b, 0x55, 0x1c, 0x54, 0xc8, 0xca, 0xd1, 0xed, 0xe4, - 0xf7, 0x72, 0x2d, 0x0a, 0x79, 0x88, 0xc6, 0x13, 0xaa, 0xe5, 0x64, 0xe6, 0xe8, 0xf6, 0xf4, 0x58, - 0x25, 0xac, 0x84, 0x92, 0x62, 0x45, 0xfc, 0x52, 0xc4, 0xd3, 0x23, 0xd8, 0xa7, 0x41, 0xb8, 0x22, - 0xff, 0xd5, 0x43, 0xf3, 0x4e, 0xc8, 0xfc, 0x90, 0xad, 0xec, 0x61, 0x46, 0x56, 0x8e, 0x6e, 0xed, - 0x11, 0x8e, 0x6f, 0xad, 0x38, 0x21, 0x0d, 0xf4, 0xfc, 0x94, 0x9a, 0xb7, 0x15, 0x96, 0xfa, 0xd0, - 0x53, 0xd7, 0x52, 0x05, 0xc3, 0x08, 0x3b, 0x5e, 0xca, 0xaf, 0x3e, 0x35, 0x99, 0x79, 0xf6, 0x3a, - 0x7c, 0x1c, 0x1d, 0x10, 0xae, 0x69, 0x2e, 0x9f, 0x4d, 0x13, 0x46, 0x2e, 0x89, 0x14, 0x89, 0xf9, - 0xb1, 0x01, 0xb3, 0x0f, 0x82, 0xfd, 0x30, 0x72, 0x88, 0x6b, 0x11, 0xc6, 0x23, 0xea, 0x70, 0x1a, - 0x06, 0xec, 0x7e, 0x18, 0xf0, 0x08, 0x3b, 0x1c, 0xdd, 0x87, 0xa2, 0xa3, 0x7f, 0xdb, 0xd8, 0x75, - 0x23, 0xc2, 0x58, 0xc9, 0x58, 0x34, 0x96, 0xfa, 0xd7, 0x4a, 0xbf, 0xfb, 0xf9, 0xcd, 0x31, 0xad, - 0xfa, 0xaa, 0x9a, 0xd9, 0xe1, 0x11, 0x0d, 0x2a, 0xd6, 0x70, 0xcc, 0xa1, 0x87, 0xd1, 0x6d, 0x18, - 0xaf, 0xe1, 0x3a, 0x23, 0x36, 0x39, 0x22, 0x01, 0xb7, 0x19, 0xad, 0x04, 0x98, 0xd7, 0x23, 0x52, - 0xca, 0x09, 0x24, 0x6b, 0x54, 0x4e, 0x3e, 0x10, 0x73, 0x3b, 0xf1, 0xd4, 0xdd, 0xee, 0xaf, 0x3e, - 0x59, 0x30, 0xcc, 0xef, 0x4f, 0x43, 0xef, 0x36, 0x8e, 0xb0, 0xcf, 0x10, 0x81, 0x05, 0x56, 0x0b, - 0xb9, 0xad, 0x96, 0x68, 0xd3, 0x80, 0x71, 0x1c, 0x70, 0xdb, 0xa3, 0x8c, 0xd3, 0xa0, 0x62, 0xef, - 0x13, 0x22, 0x15, 0x1b, 0xb8, 0x3d, 0xb5, 0xac, 0xb5, 0x12, 0xbb, 0xbf, 0xac, 0x77, 0x6f, 0xf9, - 0x7e, 0x48, 0x83, 0xb5, 0xee, 0x4f, 0x3f, 0x5f, 0xb8, 0x64, 0xcd, 0x08, 0x9c, 0x2d, 0x09, 0xb3, - 0xa1, 0x50, 0x36, 0x15, 0xc8, 0x3a, 0x21, 0xe8, 0x10, 0xae, 0xb9, 0x24, 0xa2, 0x47, 0x58, 0xec, - 0xdb, 0x79, 0xc2, 0x72, 0xed, 0x09, 0xbb, 0x9c, 0xa2, 0xb5, 0x12, 0x89, 0x61, 0xc6, 0x25, 0xfb, - 0xb8, 0xee, 0x71, 0x5b, 0xaf, 0xf0, 0x80, 0x44, 0x42, 0x86, 0x1d, 0x61, 0x4e, 0x4a, 0x5d, 0x72, - 0xbb, 0xaf, 0x08, 0xb4, 0x3f, 0x7e, 0xbe, 0x30, 0xa3, 0xe4, 0x31, 0xf7, 0x60, 0x99, 0x86, 0x2b, - 0x3e, 0xe6, 0xd5, 0xe5, 0x4d, 0x52, 0xc1, 0xce, 0x49, 0x99, 0x38, 0xd6, 0xa4, 0xc6, 0xd9, 0x91, - 0x0b, 0x3c, 0x20, 0xd1, 0x3a, 0x21, 0x16, 0xe6, 0xa7, 0x45, 0xf0, 0x46, 0x11, 0xdd, 0xcf, 0x27, - 0x62, 0x37, 0x2b, 0xc2, 0x87, 0xcb, 0xb1, 0x88, 0x86, 0x0d, 0x6c, 0x10, 0xd4, 0xd3, 0xbe, 0xa0, - 0x39, 0x8d, 0x56, 0xce, 0xec, 0xdf, 0x85, 0xe2, 0x9a, 0xd6, 0xd5, 0xfb, 0x75, 0xc4, 0x35, 0xac, - 0xce, 0x85, 0xd9, 0x58, 0x1c, 0x0d, 0x28, 0xa7, 0xd8, 0x13, 0xb6, 0x51, 0xa1, 0x81, 0x10, 0x44, - 0xc3, 0x52, 0x5f, 0xfb, 0x92, 0xa6, 0x34, 0xd0, 0x86, 0xc2, 0xd9, 0x92, 0x30, 0x96, 0x40, 0x41, - 0x1e, 0x2c, 0xc6, 0x52, 0x7c, 0x4c, 0x03, 0x4e, 0x02, 0x1c, 0x38, 0xa4, 0x51, 0x52, 0xbe, 0xf3, - 0x35, 0x6d, 0xa5, 0x58, 0x59, 0x69, 0xaf, 0x41, 0x29, 0x96, 0xb6, 0x5f, 0x0f, 0x5c, 0x61, 0xd8, - 0x82, 0x2e, 0x3a, 0xc2, 0x5e, 0xa9, 0x7f, 0xd1, 0x58, 0xea, 0xb2, 0x26, 0xf4, 0xfc, 0xba, 0x9a, - 0xde, 0xd0, 0xb3, 0xe8, 0x45, 0x28, 0xc6, 0x1c, 0x7e, 0xdd, 0xe3, 0xb4, 0xe6, 0x91, 0x12, 0x48, - 0x8e, 0x61, 0x3d, 0xbe, 0xa5, 0x87, 0xd1, 0xff, 0xc2, 0x44, 0x44, 0x3c, 0x7c, 0xa2, 0x8f, 0x85, - 0x55, 0x71, 0xa4, 0x0f, 0x67, 0xa0, 0xfd, 0x85, 0x8c, 0x6a, 0x88, 0x75, 0x42, 0x76, 0x04, 0x80, - 0x3c, 0x12, 0x0a, 0x0b, 0xb1, 0xfa, 0xd5, 0xb0, 0x1e, 0x79, 0x27, 0xc9, 0x2a, 0x04, 0xbc, 0xed, - 0xe0, 0x5a, 0x69, 0xb0, 0x7d, 0x11, 0xb1, 0x7f, 0x3c, 0x92, 0x50, 0x7a, 0xc1, 0x42, 0xce, 0x7d, - 0x5c, 0xcb, 0x9e, 0xbe, 0x16, 0x25, 0x37, 0x8a, 0x30, 0xae, 0x96, 0x52, 0xe8, 0xfc, 0xf4, 0x95, - 0x9c, 0x0d, 0x0d, 0x23, 0x17, 0x54, 0x86, 0x05, 0x1f, 0x1f, 0x67, 0xcd, 0x59, 0x86, 0x6a, 0x9b, - 0x51, 0x97, 0xd8, 0x4e, 0x58, 0x0f, 0x78, 0x69, 0x68, 0xd1, 0x58, 0x2a, 0x58, 0x33, 0x3e, 0x3e, - 0x4e, 0xed, 0xf4, 0x89, 0x20, 0xda, 0xa1, 0x2e, 0xb9, 0x2f, 0x48, 0x10, 0x83, 0xeb, 0x34, 0x78, - 0x66, 0x47, 0xe4, 0x3d, 0x1c, 0xb9, 0x36, 0x13, 0x1e, 0xe1, 0xda, 0x11, 0x39, 0xac, 0xd3, 0x88, - 0xf8, 0x22, 0xfc, 0xf2, 0x6a, 0x44, 0x58, 0x35, 0xf4, 0xdc, 0xd2, 0xb0, 0x54, 0x7b, 0x4e, 0xab, - 0x3d, 0x7e, 0x5a, 0xed, 0x8d, 0x80, 0x5b, 0x57, 0x68, 0xf0, 0xcc, 0x92, 0x60, 0x3b, 0x12, 0xcb, - 0x4a, 0xa1, 0x76, 0x63, 0x24, 0xf4, 0x10, 0x16, 0x79, 0x84, 0xd5, 0xe6, 0x4b, 0x5a, 0x66, 0x1f, - 0x11, 0x15, 0x2b, 0xdd, 0xba, 0xb4, 0xdb, 0xa0, 0x54, 0x94, 0x06, 0x32, 0xa7, 0xe9, 0x14, 0x24, - 0x7b, 0xaa, 0xa8, 0xca, 0x9a, 0x48, 0xec, 0xb4, 0x47, 0x0f, 0xeb, 0xd4, 0xc5, 0x3c, 0x8c, 0x92, - 0x45, 0xa4, 0x46, 0x33, 0xd2, 0xc1, 0x4e, 0xa7, 0x40, 0x5a, 0xff, 0xc4, 0x74, 0x8e, 0xe1, 0xc5, - 0x3d, 0x1a, 0xe0, 0xe8, 0xc4, 0x0e, 0x6b, 0x32, 0xdf, 0x9d, 0x17, 0xe8, 0x51, 0x7b, 0x81, 0xfe, - 0xaa, 0x42, 0x7c, 0xa2, 0x00, 0x5b, 0xc5, 0xfa, 0x6f, 0xc0, 0x22, 0xe6, 0xa1, 0x4f, 0x9d, 0x58, - 0xa2, 0x3a, 0x62, 0xec, 0x38, 0x84, 0x31, 0xdb, 0x23, 0x47, 0xc4, 0x2b, 0x8d, 0x2e, 0x1a, 0x4b, - 0x43, 0xb7, 0x5f, 0x59, 0x3e, 0xb3, 0x08, 0x59, 0x5e, 0x95, 0xec, 0x0a, 0x5f, 0x1e, 0xfd, 0xaa, - 0xe4, 0xdd, 0x14, 0xac, 0xd6, 0x2c, 0x3e, 0x67, 0x16, 0x1d, 0xc3, 0x75, 0x19, 0xfd, 0xcf, 0xd2, - 0x40, 0x38, 0xa7, 0xf6, 0x65, 0x4a, 0xa2, 0xd2, 0x58, 0xfb, 0xfb, 0x6c, 0x0a, 0xcc, 0x53, 0x5a, - 0xad, 0x13, 0xb2, 0x95, 0xc0, 0xa1, 0x0f, 0x0c, 0xb8, 0x99, 0xb1, 0xeb, 0x36, 0x14, 0x18, 0x6f, - 0x5f, 0x81, 0xa5, 0x14, 0xf9, 0x02, 0x35, 0xbe, 0x63, 0xc0, 0xad, 0xa6, 0x83, 0x6f, 0x43, 0x95, - 0x89, 0xf6, 0x55, 0x79, 0xa9, 0xc1, 0x08, 0x2e, 0xd0, 0xe6, 0x5d, 0x98, 0xf2, 0x69, 0x40, 0x7d, - 0xec, 0xa9, 0x42, 0xd0, 0x09, 0xbd, 0x34, 0x75, 0x4d, 0xb6, 0x2f, 0x74, 0x42, 0xa3, 0x6c, 0x6b, - 0x90, 0x38, 0x67, 0xbd, 0x03, 0x2f, 0x51, 0x96, 0x98, 0xf4, 0xe9, 0xaa, 0xc6, 0xc3, 0xf5, 0xc0, - 0xa9, 0xda, 0x24, 0xc0, 0x7b, 0x1e, 0x71, 0x4b, 0xa5, 0x45, 0x63, 0x29, 0x6f, 0xbd, 0x40, 0x99, - 0xb6, 0xda, 0x72, 0x53, 0xe1, 0xb2, 0x29, 0xc9, 0x1f, 0x28, 0x6a, 0x11, 0xac, 0x6a, 0x21, 0xe3, - 0x76, 0x18, 0x78, 0x27, 0xb6, 0x1f, 0xba, 0xc4, 0xae, 0x12, 0x5a, 0xa9, 0x66, 0xc3, 0xcb, 0x94, - 0x74, 0xf8, 0x19, 0x41, 0xf6, 0x24, 0xf0, 0x4e, 0xb6, 0x42, 0x97, 0x3c, 0x92, 0x34, 0x69, 0xdc, - 0xa8, 0xc0, 0x2d, 0x9d, 0xdc, 0x5c, 0xe2, 0x44, 0x04, 0x33, 0x62, 0xd7, 0x22, 0xea, 0x10, 0x9b, - 0x53, 0x9f, 0x30, 0x8e, 0xfd, 0x5a, 0x8a, 0x67, 0x33, 0xe2, 0x84, 0x81, 0xcb, 0x4a, 0xd3, 0x12, - 0xf7, 0x65, 0xc5, 0x58, 0xd6, 0x7c, 0xdb, 0x82, 0x6d, 0x37, 0xe6, 0x4a, 0x24, 0xec, 0x28, 0x1e, - 0x74, 0x1d, 0x86, 0x63, 0x27, 0xb2, 0xb1, 0xeb, 0xd3, 0x80, 0x95, 0x66, 0x16, 0xbb, 0x96, 0xfa, - 0xad, 0xa1, 0x78, 0x78, 0x55, 0x8e, 0xa2, 0x4d, 0x18, 0x15, 0xe1, 0x13, 0xd7, 0x65, 0x21, 0x6c, - 0x8b, 0x80, 0x2c, 0x32, 0xc9, 0x6c, 0x3b, 0xa1, 0xb2, 0x48, 0x83, 0x67, 0xab, 0x8a, 0x71, 0x0b, - 0x1f, 0x8b, 0xc4, 0x71, 0x03, 0x46, 0xf6, 0xe9, 0x31, 0x71, 0xed, 0x0a, 0x66, 0xc9, 0x46, 0xcf, - 0xc9, 0x8d, 0x1e, 0x96, 0x13, 0x0f, 0x31, 0x8b, 0x77, 0xf4, 0x1e, 0x4c, 0x13, 0x9f, 0x72, 0xdb, - 0x93, 0x07, 0x6b, 0x1f, 0x91, 0x88, 0x09, 0x0d, 0x64, 0xcd, 0xcc, 0x4a, 0xf3, 0x92, 0x69, 0x52, - 0x50, 0xa8, 0x93, 0x7f, 0xaa, 0xe6, 0x65, 0xd9, 0xcc, 0xd0, 0x5e, 0x5a, 0xe0, 0x45, 0xc4, 0xad, - 0x37, 0x17, 0x0d, 0x0b, 0xed, 0x5b, 0x53, 0x5c, 0x13, 0x58, 0x12, 0x26, 0x5b, 0x2f, 0xfc, 0x17, - 0xcc, 0x36, 0x1d, 0xf9, 0x9e, 0x17, 0x3a, 0x07, 0xcc, 0xc6, 0xbe, 0x4c, 0x4e, 0x97, 0x17, 0x8d, - 0xa5, 0x6e, 0xab, 0x94, 0x3d, 0xef, 0x35, 0x49, 0xb0, 0x2a, 0xe7, 0xd1, 0x16, 0x5c, 0xf5, 0x69, - 0x60, 0x37, 0x61, 0xb8, 0xe1, 0x7b, 0x81, 0x38, 0xed, 0x34, 0x51, 0x98, 0xb2, 0x2b, 0x58, 0xf0, - 0x69, 0xb0, 0x9d, 0x81, 0x2a, 0x6b, 0xba, 0x24, 0x55, 0xbc, 0x0d, 0x2f, 0x9d, 0xa7, 0x8e, 0x8d, - 0xf7, 0x39, 0x89, 0x12, 0xf8, 0xd2, 0x15, 0xa9, 0xdd, 0xb5, 0x56, 0xda, 0xad, 0x0a, 0xea, 0x58, - 0x06, 0x7a, 0xdf, 0x80, 0x05, 0xa2, 0xfb, 0x22, 0x3b, 0xca, 0x34, 0x46, 0x76, 0xdc, 0xdb, 0xb0, - 0xd2, 0xd5, 0xc5, 0xae, 0xa5, 0x81, 0x96, 0x61, 0xfa, 0xbc, 0xae, 0x4a, 0x67, 0x8c, 0x39, 0x72, - 0x0e, 0x0d, 0xbb, 0x5b, 0x12, 0x1d, 0xd0, 0x87, 0x7f, 0xf9, 0xd9, 0x8d, 0xc4, 0x72, 0x57, 0x54, - 0x2b, 0xf4, 0x7a, 0x77, 0x7e, 0xb1, 0x78, 0xd9, 0xfc, 0x4f, 0x18, 0x7b, 0x4c, 0x8e, 0xe3, 0xda, - 0x2c, 0x31, 0x7d, 0x74, 0x0d, 0x86, 0x02, 0x72, 0xcc, 0x53, 0x17, 0x92, 0x7d, 0x51, 0x97, 0x55, - 0x10, 0xa3, 0x09, 0x99, 0xf9, 0x57, 0x03, 0x86, 0xb6, 0xa8, 0x2b, 0xfd, 0x66, 0x35, 0x70, 0x77, - 0x9f, 0xac, 0xa1, 0xff, 0x81, 0x7e, 0x9f, 0xba, 0xca, 0x03, 0x75, 0x97, 0x27, 0x4c, 0xc6, 0xb8, - 0xc8, 0x64, 0xf2, 0xbe, 0xc6, 0x41, 0x1b, 0x30, 0xb4, 0x27, 0xaa, 0xa2, 0xbd, 0xfa, 0x89, 0x86, - 0xc9, 0xb5, 0x0f, 0x33, 0x28, 0x58, 0xd7, 0xea, 0x27, 0x0a, 0xea, 0x0d, 0x18, 0x96, 0x50, 0x8c, - 0x78, 0x9e, 0xc6, 0xea, 0x6a, 0x1f, 0xab, 0x20, 0x78, 0x77, 0x88, 0xe7, 0x49, 0x30, 0xf3, 0xc7, - 0x06, 0xf4, 0x95, 0x49, 0x2d, 0x64, 0x94, 0xa3, 0x6d, 0x18, 0xc1, 0x47, 0x98, 0x7a, 0xc2, 0xeb, - 0xec, 0x3d, 0xec, 0x89, 0xb2, 0x38, 0xb3, 0xda, 0x0b, 0x1d, 0xa4, 0x98, 0x70, 0xaf, 0x29, 0x66, - 0xf4, 0x08, 0x0a, 0x3c, 0xe4, 0xd8, 0x4b, 0xd0, 0x72, 0xed, 0xa3, 0x0d, 0x4a, 0x4e, 0x8d, 0x64, - 0xbe, 0x0c, 0x63, 0x3b, 0xf5, 0x3d, 0xec, 0xc8, 0x6a, 0x6f, 0x37, 0xc2, 0x2e, 0x79, 0x1c, 0x0a, - 0x09, 0x63, 0xd0, 0x13, 0x84, 0xb1, 0x9e, 0x05, 0x4b, 0x7d, 0x98, 0xbf, 0x32, 0x60, 0x38, 0x25, - 0x97, 0x19, 0x06, 0xfd, 0x3b, 0xf4, 0x34, 0x9f, 0xdf, 0x85, 0x3a, 0x28, 0x0e, 0xf4, 0xdf, 0x90, - 0x3f, 0xac, 0xe3, 0x80, 0x53, 0x7e, 0xd2, 0xc9, 0x0a, 0x12, 0x26, 0x64, 0xc2, 0x20, 0x65, 0x2a, - 0x6e, 0x08, 0x17, 0x93, 0xe7, 0x95, 0xb7, 0x1a, 0xc6, 0x50, 0x11, 0xba, 0x1c, 0xea, 0xaa, 0x8e, - 0xd3, 0x12, 0x3f, 0xcd, 0x08, 0x46, 0x9b, 0x16, 0x51, 0xc6, 0x1c, 0xa3, 0xff, 0x80, 0x1e, 0x99, - 0x8d, 0x75, 0x57, 0xff, 0x42, 0x0b, 0x3f, 0x6b, 0x62, 0xb5, 0x14, 0x13, 0x9a, 0x03, 0x50, 0xb9, - 0xbc, 0x8a, 0x59, 0x55, 0xae, 0x66, 0xd0, 0xea, 0x97, 0x23, 0x8f, 0x30, 0xab, 0x9a, 0xbf, 0xce, - 0x41, 0x7e, 0x5b, 0x58, 0x83, 0x08, 0x24, 0x13, 0xd0, 0x4b, 0xd9, 0x66, 0x18, 0x54, 0xa4, 0xa8, - 0xbc, 0xa5, 0xbf, 0xbe, 0xfe, 0x7e, 0x94, 0x61, 0x80, 0x04, 0x3c, 0x3a, 0x39, 0x65, 0xbe, 0x17, - 0x62, 0x80, 0xe4, 0x53, 0x8e, 0x70, 0x0f, 0x7a, 0x55, 0x2c, 0xef, 0xa4, 0x4d, 0xd7, 0x2c, 0xe8, - 0xff, 0xa0, 0xe4, 0xd4, 0xfd, 0xba, 0xa7, 0x12, 0x7f, 0xdc, 0x20, 0x49, 0xf4, 0x4e, 0x9a, 0xf1, - 0x89, 0x14, 0x44, 0xc7, 0x9b, 0x07, 0x02, 0xc2, 0xfc, 0xd0, 0x80, 0xbe, 0xd8, 0x0b, 0xae, 0x40, - 0x81, 0x25, 0x87, 0x61, 0x53, 0x57, 0x59, 0xa0, 0x35, 0x98, 0x0e, 0x6e, 0xb8, 0xc2, 0x90, 0x5d, - 0x12, 0x84, 0xbe, 0xbe, 0xfa, 0x51, 0x1f, 0xe8, 0x2e, 0xe4, 0x5d, 0xe5, 0x9d, 0x4c, 0xee, 0xd2, - 0xc0, 0xed, 0xf9, 0x16, 0xc7, 0xad, 0x9d, 0xd8, 0x4a, 0xe8, 0xef, 0xe6, 0xbf, 0xfd, 0xc9, 0xc2, - 0xa5, 0xaf, 0x3e, 0x59, 0xb8, 0x64, 0x7e, 0x6c, 0x00, 0x4a, 0x8b, 0x96, 0xe4, 0x78, 0xdb, 0xd2, - 0x6b, 0x06, 0xfa, 0xe3, 0x16, 0xc0, 0xd5, 0xba, 0xe5, 0xd5, 0xc0, 0x86, 0xc8, 0xcc, 0xf9, 0x9a, - 0x46, 0xd3, 0xea, 0x2d, 0xb4, 0x50, 0x2f, 0x16, 0x6a, 0x25, 0x0c, 0x19, 0xfd, 0x36, 0x60, 0x2c, - 0x53, 0x0b, 0x6e, 0x04, 0x2e, 0x75, 0x44, 0x73, 0xd2, 0x28, 0xdb, 0x68, 0x92, 0x3d, 0x06, 0x3d, - 0x94, 0xad, 0xd5, 0x95, 0x05, 0xe6, 0x2d, 0xf5, 0x61, 0xfe, 0x36, 0x07, 0x79, 0x19, 0x1e, 0x36, - 0xc3, 0x46, 0x3b, 0x35, 0x9e, 0xc7, 0x4e, 0x93, 0x98, 0x91, 0xeb, 0x38, 0x66, 0x9c, 0xda, 0xdc, - 0x2e, 0xe9, 0x6a, 0x8d, 0x9b, 0x7b, 0x07, 0xba, 0x44, 0x23, 0xd5, 0x81, 0xf9, 0x0a, 0xfa, 0x26, - 0x1f, 0xee, 0x69, 0xf2, 0x61, 0xf4, 0x1a, 0x8c, 0xcb, 0x6a, 0x99, 0x38, 0xb4, 0x46, 0x45, 0x63, - 0x1b, 0xdf, 0x4f, 0xf6, 0x0a, 0x4a, 0x99, 0x63, 0x0d, 0x6b, 0x74, 0x9f, 0x10, 0x2b, 0xa6, 0x88, - 0xef, 0x23, 0x75, 0x0c, 0xea, 0x4b, 0x63, 0xd0, 0x0f, 0x72, 0x50, 0x88, 0xcf, 0xae, 0x4c, 0x3c, - 0x8e, 0xd1, 0x24, 0xf4, 0x51, 0x66, 0x7b, 0xa7, 0xa3, 0x82, 0x05, 0x88, 0x1c, 0x13, 0xa7, 0x2e, - 0xcb, 0xc3, 0xe7, 0x89, 0x0f, 0x23, 0x09, 0xfb, 0x9b, 0xf1, 0x01, 0x3c, 0x86, 0x62, 0x8a, 0xa9, - 0x9d, 0xbd, 0x83, 0x68, 0x31, 0x9c, 0x30, 0xab, 0x72, 0x0d, 0x6d, 0x42, 0x3a, 0xa4, 0x83, 0x4f, - 0x07, 0x9b, 0x3f, 0x94, 0xf0, 0xaa, 0xe4, 0xf9, 0xc3, 0xae, 0xac, 0x5f, 0x25, 0x66, 0x77, 0xa6, - 0x5f, 0x35, 0x1f, 0xfd, 0x1b, 0x30, 0x14, 0x7b, 0x82, 0xed, 0x8a, 0x8d, 0xd5, 0xf7, 0xa6, 0x57, - 0x2f, 0x70, 0x20, 0x79, 0x08, 0x56, 0xa1, 0xd6, 0x70, 0x26, 0xf7, 0xa0, 0xb7, 0x86, 0x4f, 0xc2, - 0x3a, 0xef, 0x64, 0x73, 0x34, 0xcb, 0xbf, 0xbe, 0x11, 0x0a, 0x0d, 0x6b, 0x81, 0xd7, 0xc9, 0x05, - 0x9f, 0xa0, 0x37, 0x8f, 0x00, 0xa5, 0x49, 0x30, 0x89, 0x7a, 0xd9, 0x98, 0x65, 0x74, 0x18, 0xb3, - 0x4e, 0x1f, 0x6d, 0xee, 0xf4, 0xd1, 0x9a, 0x11, 0x8c, 0xa4, 0x72, 0xe3, 0xe2, 0xaa, 0x2d, 0xa3, - 0x78, 0x0d, 0xfa, 0x74, 0xf8, 0xd6, 0xd6, 0x70, 0x51, 0xb4, 0x8f, 0xc9, 0xcd, 0x03, 0x28, 0xe8, - 0xb1, 0xb7, 0x6a, 0xae, 0xe8, 0x71, 0x93, 0x7c, 0x62, 0x64, 0xf3, 0x49, 0x39, 0x93, 0x4f, 0x72, - 0xb2, 0x4c, 0x5f, 0xba, 0xb0, 0x7c, 0x38, 0x95, 0x59, 0xcc, 0xdf, 0x18, 0x50, 0xdc, 0x0e, 0x69, - 0xc0, 0x59, 0xa6, 0x69, 0x7f, 0x07, 0x26, 0xd5, 0x9d, 0x76, 0x4d, 0xce, 0x64, 0xef, 0x09, 0x3a, - 0x88, 0xbd, 0xe3, 0x12, 0xe3, 0x2c, 0x70, 0xde, 0x02, 0xbc, 0x83, 0x00, 0x33, 0xce, 0xcf, 0x02, - 0x37, 0xff, 0x96, 0x83, 0xf9, 0xdd, 0xec, 0xe5, 0xdb, 0x7d, 0xec, 0xd7, 0x30, 0xad, 0x04, 0x6b, - 0x61, 0xc8, 0xf8, 0x46, 0xb0, 0x1f, 0xa2, 0x3b, 0x30, 0xb9, 0x27, 0x3e, 0x88, 0x6b, 0x37, 0xbc, - 0xb5, 0xb8, 0xac, 0x64, 0xc8, 0x6e, 0x79, 0x4c, 0x4f, 0xef, 0xa4, 0x2f, 0x28, 0x2e, 0x43, 0x04, - 0x26, 0xb3, 0xe4, 0xa9, 0xd6, 0xf1, 0xee, 0x5f, 0x6f, 0x69, 0x7a, 0x8d, 0x3a, 0xea, 0xc6, 0x68, - 0x3c, 0x7d, 0xa0, 0x49, 0xe7, 0x18, 0x5a, 0x85, 0xb9, 0x58, 0xbb, 0x33, 0x9e, 0x68, 0x5c, 0x51, - 0x3a, 0x08, 0x1d, 0xa7, 0x35, 0x51, 0xf3, 0xfd, 0x85, 0xd0, 0xf4, 0x10, 0xe6, 0x4e, 0xb3, 0x66, - 0xf5, 0xed, 0x7e, 0x1e, 0x7d, 0x67, 0x9a, 0xdf, 0x78, 0x32, 0x5a, 0x9b, 0xbf, 0x30, 0x00, 0xc5, - 0x3b, 0xad, 0xf6, 0x7d, 0x3b, 0x0c, 0x3d, 0x74, 0x1d, 0x86, 0x19, 0xc7, 0xd1, 0xe9, 0x36, 0x6d, - 0x48, 0x0e, 0xa7, 0xed, 0xdc, 0x37, 0x61, 0x4c, 0x5d, 0x42, 0x28, 0x88, 0xf8, 0x7e, 0x55, 0xef, - 0xec, 0x39, 0xd7, 0x92, 0xff, 0x26, 0x74, 0xfb, 0xe9, 0x9f, 0x16, 0x96, 0x2a, 0x94, 0x57, 0xeb, - 0x7b, 0xcb, 0x4e, 0xe8, 0xeb, 0xa7, 0x46, 0xfd, 0xdf, 0x4d, 0xe6, 0x1e, 0xac, 0xf0, 0x93, 0x1a, - 0x61, 0x92, 0x81, 0x59, 0xc8, 0xc7, 0xc7, 0x8d, 0xaa, 0x32, 0xf3, 0x47, 0x39, 0x98, 0x3a, 0xd3, - 0x6a, 0xa4, 0xc1, 0xdc, 0x85, 0xa9, 0x44, 0xb1, 0xb8, 0x7f, 0x4f, 0xee, 0x69, 0xd4, 0x7a, 0x26, - 0x63, 0x82, 0xb8, 0x71, 0x8f, 0xaf, 0x64, 0x2e, 0xc3, 0xe0, 0x61, 0x3d, 0xe4, 0xc4, 0x96, 0x3e, - 0xab, 0x16, 0xd4, 0x6f, 0x0d, 0xc8, 0xb1, 0xb2, 0x1c, 0x42, 0x35, 0x98, 0x6a, 0xbc, 0x56, 0xb6, - 0xe5, 0xd9, 0xda, 0x34, 0xd8, 0x0f, 0x75, 0x25, 0x76, 0xa7, 0xc5, 0x51, 0x9d, 0x6f, 0xe9, 0xd6, - 0x44, 0xc3, 0x35, 0x74, 0xea, 0x01, 0xaf, 0xc2, 0xa4, 0x4b, 0xd9, 0x61, 0x1d, 0x7b, 0x74, 0x9f, - 0x12, 0x37, 0x6b, 0x5d, 0xdd, 0x52, 0xbf, 0xf1, 0xec, 0x74, 0x62, 0x58, 0xe6, 0x2f, 0x73, 0x30, - 0xba, 0x4e, 0x48, 0x99, 0x32, 0xd5, 0xba, 0x51, 0x51, 0xe0, 0xed, 0x87, 0x68, 0x07, 0x46, 0x55, - 0xb8, 0x70, 0xf5, 0x8c, 0xba, 0xdd, 0xeb, 0x20, 0x54, 0x8c, 0x48, 0xfe, 0x18, 0x58, 0x5e, 0xec, - 0xed, 0xc0, 0x28, 0x3f, 0x03, 0xb4, 0x93, 0x1a, 0x84, 0x9f, 0x02, 0x5d, 0x83, 0x82, 0x7e, 0x2c, - 0xd0, 0xd7, 0x39, 0x5d, 0xed, 0x5c, 0x79, 0x0d, 0x2a, 0x1e, 0x7d, 0xc3, 0x73, 0x0f, 0x7a, 0x8f, - 0x42, 0xaf, 0xee, 0x77, 0x94, 0x66, 0x35, 0x8b, 0xf9, 0xad, 0xc6, 0x2d, 0xdc, 0x71, 0xaa, 0xc4, - 0xad, 0x7b, 0x44, 0xd8, 0xc9, 0x5e, 0xdd, 0x11, 0xa7, 0xa0, 0xde, 0x40, 0x0c, 0x79, 0x91, 0x33, - 0xa0, 0xc6, 0xd4, 0x9b, 0xc7, 0x75, 0x18, 0xd6, 0x24, 0xc9, 0x25, 0x52, 0x4e, 0x39, 0x93, 0x1a, - 0x4e, 0xee, 0x8c, 0x9a, 0x6d, 0xae, 0xeb, 0xb4, 0xcd, 0x6d, 0x00, 0x70, 0x4a, 0x22, 0x69, 0x63, - 0x71, 0x3c, 0xb8, 0xd1, 0xc2, 0xc8, 0xce, 0x38, 0x71, 0xab, 0x9f, 0xeb, 0x5f, 0xec, 0x3c, 0x63, - 0xea, 0x39, 0xcf, 0x98, 0xb6, 0x00, 0x35, 0x21, 0xef, 0xee, 0x6e, 0x22, 0x04, 0xdd, 0x3c, 0x4e, - 0x33, 0xdd, 0x96, 0xfc, 0x2d, 0xd2, 0x2d, 0xe7, 0x5e, 0x26, 0x86, 0xa8, 0x65, 0x0f, 0x72, 0xee, - 0xa5, 0x37, 0x3d, 0xdf, 0x35, 0x60, 0x68, 0x55, 0x25, 0x39, 0xed, 0xd5, 0xa8, 0x04, 0x7d, 0x3a, - 0xed, 0xe9, 0xc4, 0x19, 0x7f, 0x22, 0x02, 0x7d, 0xff, 0xc4, 0x08, 0x13, 0x63, 0x9b, 0xef, 0x1b, - 0x30, 0x28, 0x2b, 0x49, 0x8b, 0x38, 0xa1, 0xd0, 0xe8, 0xdc, 0x26, 0x68, 0x17, 0xc6, 0x3c, 0xcc, - 0x09, 0xe3, 0xb6, 0x70, 0x5b, 0x59, 0x6e, 0x85, 0xa9, 0x86, 0xe6, 0x39, 0x21, 0x40, 0xe3, 0x5b, - 0x48, 0xf1, 0x67, 0x45, 0x9a, 0xaf, 0x42, 0x21, 0x4d, 0xff, 0x1b, 0x65, 0x86, 0xae, 0xc1, 0x50, - 0x43, 0xf1, 0xa2, 0xb2, 0xde, 0xa0, 0x55, 0xc8, 0x56, 0x2f, 0xcc, 0xfc, 0x89, 0x01, 0x03, 0x19, - 0x20, 0x34, 0x0b, 0xfd, 0xcd, 0x41, 0x3c, 0x1d, 0xf8, 0x3a, 0xcd, 0x55, 0xb6, 0xb1, 0xeb, 0x7a, - 0x8e, 0xc6, 0xce, 0xf4, 0xa1, 0x47, 0xbd, 0xfc, 0xdc, 0x02, 0xa3, 0xd6, 0x49, 0xd0, 0x31, 0x6a, - 0x82, 0xe5, 0xb0, 0x13, 0x9d, 0x8d, 0x43, 0xf3, 0x7b, 0x06, 0x2c, 0xac, 0x56, 0x2a, 0x11, 0xa9, - 0x60, 0x4e, 0xd2, 0xad, 0x7d, 0x2a, 0xfd, 0x5b, 0x6f, 0x56, 0x5b, 0xdd, 0xf8, 0xeb, 0x30, 0xa4, - 0x8d, 0x41, 0xc5, 0x86, 0xf8, 0xa4, 0xaf, 0xb4, 0x38, 0x69, 0xe5, 0x3a, 0x5a, 0x4e, 0xc1, 0xcf, - 0x7c, 0x31, 0xf3, 0x03, 0x03, 0x66, 0x13, 0xa5, 0x56, 0xcf, 0xd0, 0xa8, 0xb5, 0x2f, 0xfc, 0x23, - 0xd5, 0x58, 0x15, 0x95, 0x6b, 0x10, 0xfa, 0x65, 0xe2, 0x50, 0x1f, 0x7b, 0xac, 0x45, 0xe5, 0x3a, - 0x2d, 0x2a, 0x57, 0x45, 0x21, 0x37, 0xbf, 0xdb, 0x4a, 0xbe, 0x4d, 0x02, 0xe8, 0x61, 0x84, 0x03, - 0xbe, 0x5a, 0xe7, 0xd5, 0x30, 0xa2, 0xff, 0xaf, 0x42, 0x5a, 0x09, 0xfa, 0x2a, 0x62, 0x54, 0xff, - 0xfd, 0x4b, 0xbf, 0x15, 0x7f, 0xa2, 0x3b, 0xd0, 0xab, 0x43, 0x79, 0xae, 0x9d, 0x50, 0xae, 0x89, - 0xcd, 0x77, 0x61, 0x60, 0x55, 0xae, 0x4d, 0x0a, 0x4b, 0xf1, 0xa3, 0x46, 0xfc, 0xe8, 0x79, 0xf1, - 0x3f, 0x32, 0x60, 0xe8, 0xc1, 0xfe, 0x3e, 0x69, 0x4b, 0xc6, 0x06, 0x8c, 0x04, 0x84, 0xdb, 0xea, - 0x53, 0x3f, 0x67, 0xb7, 0x27, 0x6e, 0x38, 0x20, 0xfc, 0xa1, 0x62, 0x93, 0x0f, 0xd7, 0x68, 0x0a, - 0xf2, 0x94, 0xd9, 0x47, 0xd8, 0xd3, 0xb7, 0x14, 0x79, 0xab, 0x8f, 0xb2, 0xa7, 0xe2, 0xd3, 0xac, - 0x41, 0x51, 0x1e, 0xce, 0x16, 0x0d, 0x1e, 0x87, 0x62, 0x57, 0xb1, 0xd7, 0xe2, 0x7c, 0xd6, 0x61, - 0xd0, 0xa7, 0x81, 0x1d, 0x68, 0xaa, 0x4e, 0x1c, 0x64, 0xc0, 0x4f, 0xd1, 0x6f, 0xfc, 0xde, 0x80, - 0xc2, 0x83, 0xb8, 0xcd, 0xde, 0x3d, 0xa9, 0x11, 0x34, 0x0b, 0xa5, 0xb7, 0x02, 0x56, 0x23, 0x8e, - 0x4c, 0x06, 0x0d, 0x73, 0xc5, 0x4b, 0x08, 0xa0, 0x57, 0x59, 0x57, 0xd1, 0x40, 0x05, 0xe8, 0xdf, - 0xa4, 0x3e, 0xe5, 0xeb, 0xd4, 0xf3, 0x8a, 0x39, 0x34, 0x0d, 0x13, 0xf2, 0x73, 0x0b, 0x73, 0xa7, - 0x6a, 0xa9, 0xf7, 0x74, 0x79, 0xc3, 0x54, 0xec, 0x42, 0x13, 0x80, 0xd2, 0xb9, 0xc7, 0xe4, 0x3d, - 0x35, 0xde, 0x8d, 0xc6, 0x61, 0x44, 0x3f, 0xea, 0xe9, 0x37, 0x72, 0x1a, 0x06, 0xc5, 0x1e, 0x01, - 0xf5, 0xe0, 0xb8, 0x46, 0xa3, 0x13, 0x35, 0xb9, 0x43, 0x38, 0xf7, 0xe4, 0x4b, 0x7f, 0xb1, 0x57, - 0x40, 0x3d, 0xd9, 0xdf, 0x67, 0x84, 0x0b, 0xfc, 0xb8, 0x67, 0x2c, 0xf6, 0x09, 0x6d, 0x76, 0x4e, - 0x02, 0x5e, 0x25, 0x9c, 0x3a, 0xc5, 0xfc, 0xda, 0xc1, 0xa7, 0x5f, 0xcc, 0x1b, 0x9f, 0x7d, 0x31, - 0x6f, 0xfc, 0xf9, 0x8b, 0x79, 0xe3, 0xa3, 0x2f, 0xe7, 0x2f, 0x7d, 0xf6, 0xe5, 0xfc, 0xa5, 0x3f, - 0x7c, 0x39, 0x7f, 0xe9, 0xed, 0x37, 0x33, 0x59, 0x62, 0x23, 0xf6, 0x9f, 0x4d, 0xbc, 0xc7, 0x56, - 0x12, 0x6f, 0xba, 0xe9, 0x84, 0x11, 0xc9, 0x7e, 0x56, 0x31, 0x0d, 0x56, 0xfc, 0x50, 0xd4, 0x01, - 0x2c, 0xfd, 0x23, 0x36, 0x99, 0x51, 0x56, 0x8e, 0x6e, 0xef, 0xf5, 0xca, 0x77, 0xd3, 0x57, 0xfe, - 0x1e, 0x00, 0x00, 0xff, 0xff, 0xeb, 0xbc, 0x0b, 0xdd, 0xd6, 0x27, 0x00, 0x00, + // 3296 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcb, 0x6f, 0x1c, 0xc7, + 0xd1, 0xd7, 0x2c, 0x5f, 0xcb, 0x22, 0x97, 0x5c, 0x36, 0x5f, 0x4b, 0x91, 0x22, 0xa9, 0x91, 0x64, + 0xd1, 0xb2, 0x45, 0x7e, 0x92, 0x21, 0xc3, 0x9f, 0xf4, 0xbd, 0x48, 0xad, 0x28, 0xd1, 0x26, 0x25, + 0x7a, 0x48, 0x0b, 0x1f, 0x6c, 0x7c, 0x1e, 0x34, 0x67, 0x9a, 0xbb, 0x2d, 0xce, 0x63, 0x39, 0xdd, + 0x4b, 0x71, 0xbf, 0xc7, 0xe1, 0x03, 0x0c, 0x24, 0x70, 0x2e, 0x4e, 0x0e, 0x39, 0x04, 0x31, 0xe0, + 0x43, 0x82, 0x00, 0x39, 0xe5, 0x90, 0x63, 0x0e, 0x01, 0x82, 0x00, 0x3e, 0x24, 0x80, 0x91, 0x43, + 0x10, 0xe4, 0xe0, 0x04, 0xf6, 0x21, 0x46, 0xce, 0xf9, 0x03, 0x82, 0x7e, 0xcc, 0x63, 0x97, 0x5c, + 0x72, 0x57, 0x4e, 0x80, 0x5c, 0xa4, 0x9d, 0xee, 0xaa, 0x5f, 0x55, 0x77, 0x55, 0x57, 0x55, 0x57, + 0x13, 0xae, 0xd2, 0xe0, 0x19, 0x71, 0x38, 0x3d, 0x22, 0x2b, 0xe4, 0xd8, 0xa9, 0xe2, 0xa0, 0x42, + 0x56, 0x8e, 0x6e, 0x27, 0xbf, 0x97, 0x6b, 0x51, 0xc8, 0x43, 0x34, 0x99, 0x50, 0x2d, 0x27, 0x33, + 0x47, 0xb7, 0x2f, 0x4e, 0x54, 0xc2, 0x4a, 0x28, 0x29, 0x56, 0xc4, 0x2f, 0x45, 0x7c, 0x71, 0x0c, + 0xfb, 0x34, 0x08, 0x57, 0xe4, 0xbf, 0x7a, 0x68, 0xde, 0x09, 0x99, 0x1f, 0xb2, 0x95, 0x3d, 0xcc, + 0xc8, 0xca, 0xd1, 0xad, 0x3d, 0xc2, 0xf1, 0xad, 0x15, 0x27, 0xa4, 0x81, 0x9e, 0x9f, 0x51, 0xf3, + 0xb6, 0xc2, 0x52, 0x1f, 0x7a, 0xea, 0x5a, 0xaa, 0x60, 0x18, 0x61, 0xc7, 0x4b, 0xf9, 0xd5, 0xa7, + 0x26, 0x33, 0x4f, 0x5f, 0x87, 0x8f, 0xa3, 0x03, 0xc2, 0x35, 0xcd, 0xe5, 0xd3, 0x69, 0xc2, 0xc8, + 0x25, 0x91, 0x22, 0x31, 0x3f, 0x36, 0x60, 0xee, 0x41, 0xb0, 0x1f, 0x46, 0x0e, 0x71, 0x2d, 0xc2, + 0x78, 0x44, 0x1d, 0x4e, 0xc3, 0x80, 0xdd, 0x0f, 0x03, 0x1e, 0x61, 0x87, 0xa3, 0xfb, 0x50, 0x74, + 0xf4, 0x6f, 0x1b, 0xbb, 0x6e, 0x44, 0x18, 0x2b, 0x19, 0x8b, 0xc6, 0xd2, 0xe0, 0x5a, 0xe9, 0x37, + 0x3f, 0xbd, 0x39, 0xa1, 0x55, 0x5f, 0x55, 0x33, 0x3b, 0x3c, 0xa2, 0x41, 0xc5, 0x1a, 0x8d, 0x39, + 0xf4, 0x30, 0xba, 0x0d, 0x93, 0x35, 0x5c, 0x67, 0xc4, 0x26, 0x47, 0x24, 0xe0, 0x36, 0xa3, 0x95, + 0x00, 0xf3, 0x7a, 0x44, 0x4a, 0x39, 0x81, 0x64, 0x8d, 0xcb, 0xc9, 0x07, 0x62, 0x6e, 0x27, 0x9e, + 0xba, 0xdb, 0xfb, 0xd5, 0x27, 0x0b, 0x86, 0xf9, 0xd5, 0x2c, 0xf4, 0x6f, 0xe3, 0x08, 0xfb, 0x0c, + 0x11, 0x58, 0x60, 0xb5, 0x90, 0xdb, 0x6a, 0x89, 0x36, 0x0d, 0x18, 0xc7, 0x01, 0xb7, 0x3d, 0xca, + 0x38, 0x0d, 0x2a, 0xf6, 0x3e, 0x21, 0x52, 0xb1, 0xa1, 0xdb, 0x33, 0xcb, 0x5a, 0x2b, 0xb1, 0xfb, + 0xcb, 0x7a, 0xf7, 0x96, 0xef, 0x87, 0x34, 0x58, 0xeb, 0xfd, 0xf4, 0xf3, 0x85, 0x0b, 0xd6, 0xac, + 0xc0, 0xd9, 0x92, 0x30, 0x1b, 0x0a, 0x65, 0x53, 0x81, 0xac, 0x13, 0x82, 0x0e, 0xe1, 0x9a, 0x4b, + 0x22, 0x7a, 0x84, 0xc5, 0xbe, 0x9d, 0x25, 0x2c, 0xd7, 0x99, 0xb0, 0xcb, 0x29, 0x5a, 0x3b, 0x91, + 0x18, 0x66, 0x5d, 0xb2, 0x8f, 0xeb, 0x1e, 0xb7, 0xf5, 0x0a, 0x0f, 0x48, 0x24, 0x64, 0xd8, 0x11, + 0xe6, 0xa4, 0xd4, 0x23, 0xb7, 0xfb, 0x8a, 0x40, 0xfb, 0xfd, 0xe7, 0x0b, 0xb3, 0x4a, 0x1e, 0x73, + 0x0f, 0x96, 0x69, 0xb8, 0xe2, 0x63, 0x5e, 0x5d, 0xde, 0x24, 0x15, 0xec, 0x34, 0xca, 0xc4, 0xb1, + 0xa6, 0x35, 0xce, 0x8e, 0x5c, 0xe0, 0x01, 0x89, 0xd6, 0x09, 0xb1, 0x30, 0x3f, 0x29, 0x82, 0x37, + 0x8b, 0xe8, 0x7d, 0x31, 0x11, 0xbb, 0x59, 0x11, 0x3e, 0x5c, 0x8e, 0x45, 0x34, 0x6d, 0x60, 0x93, + 0xa0, 0xbe, 0xce, 0x05, 0x5d, 0xd2, 0x68, 0xe5, 0xcc, 0xfe, 0x9d, 0x2b, 0xae, 0x65, 0x5d, 0xfd, + 0x5f, 0x47, 0x5c, 0xd3, 0xea, 0x5c, 0x98, 0x8b, 0xc5, 0xd1, 0x80, 0x72, 0x8a, 0x3d, 0xe1, 0x1b, + 0x15, 0x1a, 0x08, 0x41, 0x34, 0x2c, 0x0d, 0x74, 0x2e, 0x69, 0x46, 0x03, 0x6d, 0x28, 0x9c, 0x2d, + 0x09, 0x63, 0x09, 0x14, 0xe4, 0xc1, 0x62, 0x2c, 0xc5, 0xc7, 0x34, 0xe0, 0x24, 0xc0, 0x81, 0x43, + 0x9a, 0x25, 0xe5, 0xbb, 0x5f, 0xd3, 0x56, 0x8a, 0x95, 0x95, 0xf6, 0x06, 0x94, 0x62, 0x69, 0xfb, + 0xf5, 0xc0, 0x15, 0x8e, 0x2d, 0xe8, 0xa2, 0x23, 0xec, 0x95, 0x06, 0x17, 0x8d, 0xa5, 0x1e, 0x6b, + 0x4a, 0xcf, 0xaf, 0xab, 0xe9, 0x0d, 0x3d, 0x8b, 0x5e, 0x86, 0x62, 0xcc, 0xe1, 0xd7, 0x3d, 0x4e, + 0x6b, 0x1e, 0x29, 0x81, 0xe4, 0x18, 0xd5, 0xe3, 0x5b, 0x7a, 0x18, 0xfd, 0x27, 0x4c, 0x45, 0xc4, + 0xc3, 0x0d, 0x6d, 0x16, 0x56, 0xc5, 0x91, 0x36, 0xce, 0x50, 0xe7, 0x0b, 0x19, 0xd7, 0x10, 0xeb, + 0x84, 0xec, 0x08, 0x00, 0x69, 0x12, 0x0a, 0x0b, 0xb1, 0xfa, 0xd5, 0xb0, 0x1e, 0x79, 0x8d, 0x64, + 0x15, 0x02, 0xde, 0x76, 0x70, 0xad, 0x34, 0xdc, 0xb9, 0x88, 0xf8, 0x7c, 0x3c, 0x92, 0x50, 0x7a, + 0xc1, 0x42, 0xce, 0x7d, 0x5c, 0xcb, 0x5a, 0x5f, 0x8b, 0x92, 0x1b, 0x45, 0x18, 0x57, 0x4b, 0x29, + 0x74, 0x6f, 0x7d, 0x25, 0x67, 0x43, 0xc3, 0xc8, 0x05, 0x95, 0x61, 0xc1, 0xc7, 0xc7, 0x59, 0x77, + 0x96, 0xa1, 0xda, 0x66, 0xd4, 0x25, 0xb6, 0x13, 0xd6, 0x03, 0x5e, 0x1a, 0x59, 0x34, 0x96, 0x0a, + 0xd6, 0xac, 0x8f, 0x8f, 0x53, 0x3f, 0x7d, 0x22, 0x88, 0x76, 0xa8, 0x4b, 0xee, 0x0b, 0x12, 0xc4, + 0xe0, 0x3a, 0x0d, 0x9e, 0xd9, 0x11, 0x79, 0x8e, 0x23, 0xd7, 0x66, 0xe2, 0x44, 0xb8, 0x76, 0x44, + 0x0e, 0xeb, 0x34, 0x22, 0xbe, 0x08, 0xbf, 0xbc, 0x1a, 0x11, 0x56, 0x0d, 0x3d, 0xb7, 0x34, 0x2a, + 0xd5, 0xbe, 0xa4, 0xd5, 0x9e, 0x3c, 0xa9, 0xf6, 0x46, 0xc0, 0xad, 0x2b, 0x34, 0x78, 0x66, 0x49, + 0xb0, 0x1d, 0x89, 0x65, 0xa5, 0x50, 0xbb, 0x31, 0x12, 0x7a, 0x08, 0x8b, 0x3c, 0xc2, 0x6a, 0xf3, + 0x25, 0x2d, 0xb3, 0x8f, 0x88, 0x8a, 0x95, 0x6e, 0x5d, 0xfa, 0x6d, 0x50, 0x2a, 0x4a, 0x07, 0xb9, + 0xa4, 0xe9, 0x14, 0x24, 0x7b, 0xaa, 0xa8, 0xca, 0x9a, 0x48, 0xec, 0xb4, 0x47, 0x0f, 0xeb, 0xd4, + 0xc5, 0x3c, 0x8c, 0x92, 0x45, 0xa4, 0x4e, 0x33, 0xd6, 0xc5, 0x4e, 0xa7, 0x40, 0x5a, 0xff, 0xc4, + 0x75, 0x8e, 0xe1, 0xe5, 0x3d, 0x1a, 0xe0, 0xa8, 0x61, 0x87, 0x35, 0x99, 0xef, 0xce, 0x0a, 0xf4, + 0xa8, 0xb3, 0x40, 0x7f, 0x55, 0x21, 0x3e, 0x51, 0x80, 0xed, 0x62, 0xfd, 0xff, 0xc0, 0x22, 0xe6, + 0xa1, 0x4f, 0x9d, 0x58, 0xa2, 0x32, 0x31, 0x76, 0x1c, 0xc2, 0x98, 0xed, 0x91, 0x23, 0xe2, 0x95, + 0xc6, 0x17, 0x8d, 0xa5, 0x91, 0xdb, 0xaf, 0x2d, 0x9f, 0x5a, 0x84, 0x2c, 0xaf, 0x4a, 0x76, 0x85, + 0x2f, 0x4d, 0xbf, 0x2a, 0x79, 0x37, 0x05, 0xab, 0x35, 0x87, 0xcf, 0x98, 0x45, 0xc7, 0x70, 0x5d, + 0x46, 0xff, 0xd3, 0x34, 0x10, 0x87, 0x53, 0x9f, 0x65, 0x4a, 0xa2, 0xd2, 0x44, 0xe7, 0xfb, 0x6c, + 0x0a, 0xcc, 0x13, 0x5a, 0xad, 0x13, 0xb2, 0x95, 0xc0, 0xa1, 0x0f, 0x0c, 0xb8, 0x99, 0xf1, 0xeb, + 0x0e, 0x14, 0x98, 0xec, 0x5c, 0x81, 0xa5, 0x14, 0xf9, 0x1c, 0x35, 0xbe, 0x65, 0xc0, 0xad, 0x16, + 0xc3, 0x77, 0xa0, 0xca, 0x54, 0xe7, 0xaa, 0xbc, 0xd2, 0xe4, 0x04, 0xe7, 0x68, 0xf3, 0x3e, 0xcc, + 0xf8, 0x34, 0xa0, 0x3e, 0xf6, 0x54, 0x21, 0xe8, 0x84, 0x5e, 0x9a, 0xba, 0xa6, 0x3b, 0x17, 0x3a, + 0xa5, 0x51, 0xb6, 0x35, 0x48, 0x9c, 0xb3, 0xde, 0x83, 0x57, 0x28, 0x4b, 0x5c, 0xfa, 0x64, 0x55, + 0xe3, 0xe1, 0x7a, 0xe0, 0x54, 0x6d, 0x12, 0xe0, 0x3d, 0x8f, 0xb8, 0xa5, 0xd2, 0xa2, 0xb1, 0x94, + 0xb7, 0x5e, 0xa2, 0x4c, 0x7b, 0x6d, 0xb9, 0xa5, 0x70, 0xd9, 0x94, 0xe4, 0x0f, 0x14, 0xb5, 0x08, + 0x56, 0xb5, 0x90, 0x71, 0x3b, 0x0c, 0xbc, 0x86, 0xed, 0x87, 0x2e, 0xb1, 0xab, 0x84, 0x56, 0xaa, + 0xd9, 0xf0, 0x32, 0x23, 0x0f, 0xfc, 0xac, 0x20, 0x7b, 0x12, 0x78, 0x8d, 0xad, 0xd0, 0x25, 0x8f, + 0x24, 0x4d, 0x1a, 0x37, 0x2a, 0x70, 0x4b, 0x27, 0x37, 0x97, 0x38, 0x11, 0xc1, 0x8c, 0xd8, 0xb5, + 0x88, 0x3a, 0xc4, 0xe6, 0xd4, 0x27, 0x8c, 0x63, 0xbf, 0x96, 0xe2, 0xd9, 0x8c, 0x38, 0x61, 0xe0, + 0xb2, 0xd2, 0x45, 0x89, 0xfb, 0xaa, 0x62, 0x2c, 0x6b, 0xbe, 0x6d, 0xc1, 0xb6, 0x1b, 0x73, 0x25, + 0x12, 0x76, 0x14, 0x0f, 0xba, 0x0e, 0xa3, 0xf1, 0x21, 0xb2, 0xb1, 0xeb, 0xd3, 0x80, 0x95, 0x66, + 0x17, 0x7b, 0x96, 0x06, 0xad, 0x91, 0x78, 0x78, 0x55, 0x8e, 0xa2, 0xc7, 0x30, 0x2e, 0xc2, 0x27, + 0xae, 0xcb, 0x42, 0xd8, 0x16, 0x01, 0x59, 0x64, 0x92, 0x39, 0x69, 0x8e, 0x85, 0x33, 0x43, 0x65, + 0xc9, 0xb0, 0x8a, 0x34, 0x78, 0xb6, 0xaa, 0x58, 0xb7, 0xf0, 0xb1, 0x48, 0x1d, 0x37, 0x60, 0x6c, + 0x9f, 0x1e, 0x13, 0xd7, 0xae, 0x60, 0x96, 0x6c, 0xf5, 0x25, 0xb9, 0xd5, 0xa3, 0x72, 0xe2, 0x21, + 0x66, 0xf1, 0x9e, 0xde, 0x83, 0x8b, 0xc4, 0xa7, 0xdc, 0xf6, 0xa4, 0x69, 0xed, 0x23, 0x12, 0x31, + 0xa1, 0x83, 0xac, 0x9a, 0x59, 0x69, 0x5e, 0x32, 0x4d, 0x0b, 0x0a, 0x65, 0xfb, 0xa7, 0x6a, 0x5e, + 0x16, 0xce, 0x0c, 0xed, 0xa5, 0x25, 0x5e, 0x44, 0xdc, 0x7a, 0x6b, 0xd9, 0xb0, 0xd0, 0xb9, 0x3f, + 0xc5, 0x55, 0x81, 0x25, 0x61, 0xb2, 0x15, 0xc3, 0xbf, 0xc1, 0x5c, 0x8b, 0xd1, 0xf7, 0xbc, 0xd0, + 0x39, 0x60, 0x36, 0xf6, 0x65, 0x7a, 0xba, 0xbc, 0x68, 0x2c, 0xf5, 0x5a, 0xa5, 0xac, 0xc5, 0xd7, + 0x24, 0xc1, 0xaa, 0x9c, 0x47, 0x5b, 0x70, 0xd5, 0xa7, 0x81, 0xdd, 0x82, 0xe1, 0x86, 0xcf, 0x03, + 0x61, 0xef, 0x34, 0x55, 0x98, 0xf2, 0x5e, 0xb0, 0xe0, 0xd3, 0x60, 0x3b, 0x03, 0x55, 0xd6, 0x74, + 0x49, 0xb2, 0x78, 0x17, 0x5e, 0x39, 0x4b, 0x1d, 0x1b, 0xef, 0x73, 0x12, 0x25, 0xf0, 0xa5, 0x2b, + 0x52, 0xbb, 0x6b, 0xed, 0xb4, 0x5b, 0x15, 0xd4, 0xb1, 0x0c, 0xf4, 0x5d, 0x03, 0x6e, 0xb8, 0xa4, + 0x16, 0x11, 0x07, 0x73, 0xe2, 0xda, 0x44, 0x5f, 0x92, 0xec, 0x28, 0x73, 0x4b, 0xb2, 0xe3, 0x8b, + 0x0e, 0x2b, 0x5d, 0x5d, 0xec, 0x59, 0x1a, 0x6a, 0x1b, 0xb3, 0xcf, 0xba, 0x62, 0xe9, 0xf4, 0x71, + 0x3d, 0x15, 0x76, 0x16, 0x35, 0x13, 0x55, 0xdb, 0xf3, 0x2a, 0xe5, 0xc4, 0x3e, 0x08, 0xe4, 0x79, + 0x4b, 0xb3, 0x1c, 0x2b, 0x5d, 0x93, 0x2e, 0x3d, 0x25, 0xe7, 0xdf, 0x92, 0xd3, 0x9b, 0xe9, 0x2c, + 0xfa, 0x5f, 0x78, 0xb9, 0x0d, 0xe7, 0x29, 0x89, 0xf6, 0xa5, 0xce, 0xfd, 0xe5, 0xea, 0xa9, 0xf2, + 0x5a, 0x72, 0xee, 0xdd, 0x92, 0xb8, 0xd0, 0x7d, 0xf8, 0xa7, 0x9f, 0xdc, 0x48, 0x0e, 0xe2, 0x8a, + 0xba, 0xd9, 0xbd, 0xd9, 0x9b, 0x5f, 0x2c, 0x5e, 0x36, 0xff, 0x15, 0x26, 0x1e, 0x93, 0xe3, 0xb8, + 0xd4, 0x4c, 0x4e, 0x32, 0xba, 0x06, 0x23, 0x01, 0x39, 0xe6, 0x69, 0x44, 0x90, 0xd7, 0xbc, 0x1e, + 0xab, 0x20, 0x46, 0x13, 0x32, 0xf3, 0xcf, 0x06, 0x8c, 0x6c, 0x51, 0x57, 0x86, 0x81, 0xd5, 0xc0, + 0xdd, 0x7d, 0xb2, 0x86, 0xfe, 0x03, 0x06, 0x7d, 0xea, 0xaa, 0x80, 0xa2, 0x2f, 0xad, 0x62, 0x3d, + 0xc6, 0x79, 0xeb, 0xc9, 0xfb, 0x1a, 0x07, 0x6d, 0xc0, 0xc8, 0x9e, 0x28, 0xf2, 0xf6, 0xea, 0x0d, + 0x0d, 0x93, 0xeb, 0x1c, 0x66, 0x58, 0xb0, 0xae, 0xd5, 0x1b, 0x0a, 0xea, 0x2d, 0x18, 0x95, 0x50, + 0x8c, 0x78, 0x9e, 0xc6, 0xea, 0xe9, 0x1c, 0xab, 0x20, 0x78, 0x77, 0x88, 0xe7, 0x49, 0x30, 0xf3, + 0x87, 0x06, 0x0c, 0x94, 0x49, 0x2d, 0x64, 0x94, 0xa3, 0x6d, 0x18, 0xc3, 0x47, 0x98, 0x7a, 0x22, + 0x84, 0xd8, 0x7b, 0xd8, 0x13, 0x55, 0x7e, 0x66, 0xb5, 0xe7, 0x5a, 0xaf, 0x98, 0x70, 0xaf, 0x29, + 0x66, 0xf4, 0x08, 0x0a, 0x3c, 0xe4, 0xd8, 0x4b, 0xd0, 0x72, 0x9d, 0xa3, 0x0d, 0x4b, 0x4e, 0x8d, + 0x64, 0xbe, 0x0a, 0x13, 0x3b, 0xf5, 0x3d, 0xec, 0xc8, 0xe2, 0x75, 0x37, 0xc2, 0x2e, 0x79, 0x1c, + 0x0a, 0x09, 0x13, 0xd0, 0x17, 0x84, 0xb1, 0x9e, 0x05, 0x4b, 0x7d, 0x98, 0xbf, 0x30, 0x60, 0x34, + 0x25, 0x97, 0x09, 0x13, 0xfd, 0x33, 0xf4, 0xb5, 0xda, 0xef, 0x5c, 0x1d, 0x14, 0x07, 0xfa, 0x77, + 0xc8, 0x1f, 0xd6, 0x71, 0xc0, 0x29, 0x6f, 0x74, 0xb3, 0x82, 0x84, 0x09, 0x99, 0x30, 0x4c, 0x99, + 0x0a, 0x82, 0x22, 0x5e, 0x48, 0x7b, 0xe5, 0xad, 0xa6, 0x31, 0x54, 0x84, 0x1e, 0x87, 0xba, 0xea, + 0x02, 0x6d, 0x89, 0x9f, 0x66, 0x04, 0xe3, 0x2d, 0x8b, 0x28, 0x63, 0x8e, 0xd1, 0xbf, 0x40, 0x9f, + 0x2c, 0x2e, 0x74, 0x93, 0xe2, 0xa5, 0x36, 0x91, 0xa2, 0x85, 0xd5, 0x52, 0x4c, 0xe8, 0x12, 0x80, + 0x2a, 0x4d, 0xaa, 0x98, 0x55, 0xe5, 0x6a, 0x86, 0xad, 0x41, 0x39, 0xf2, 0x08, 0xb3, 0xaa, 0xf9, + 0xcb, 0x1c, 0xe4, 0xb7, 0x85, 0x37, 0x88, 0xa8, 0x38, 0x05, 0xfd, 0x94, 0x6d, 0x86, 0x41, 0x45, + 0x8a, 0xca, 0x5b, 0xfa, 0xeb, 0xeb, 0xef, 0x47, 0x19, 0x86, 0x48, 0xc0, 0xa3, 0xc6, 0x09, 0xf7, + 0x3d, 0x17, 0x03, 0x24, 0x9f, 0x3a, 0x08, 0xf7, 0xa0, 0x5f, 0x25, 0xa6, 0x6e, 0xba, 0x0e, 0x9a, + 0x05, 0xfd, 0x17, 0x94, 0x9c, 0xba, 0x5f, 0xf7, 0x54, 0x1d, 0x13, 0xdf, 0xf7, 0x24, 0x7a, 0x37, + 0xbd, 0x85, 0xa9, 0x14, 0x44, 0xc7, 0x9b, 0x07, 0x02, 0xc2, 0xfc, 0xd0, 0x80, 0x81, 0xf8, 0x14, + 0x5c, 0x81, 0x02, 0x4b, 0x8c, 0x61, 0x53, 0x57, 0x79, 0xa0, 0x35, 0x9c, 0x0e, 0x6e, 0xb8, 0xc2, + 0x91, 0x5d, 0x12, 0x84, 0xbe, 0xee, 0x64, 0xa9, 0x0f, 0x74, 0x17, 0xf2, 0xae, 0x3a, 0x9d, 0x4c, + 0xee, 0xd2, 0xd0, 0xed, 0xf9, 0x36, 0xe6, 0xd6, 0x87, 0xd8, 0x4a, 0xe8, 0xef, 0xe6, 0xbf, 0xf9, + 0xc9, 0xc2, 0x85, 0xaf, 0x3e, 0x59, 0xb8, 0x60, 0x7e, 0x6c, 0x00, 0x4a, 0x6b, 0xb0, 0xc4, 0xbc, + 0x1d, 0xe9, 0x35, 0x0b, 0x83, 0xf1, 0x8d, 0xc6, 0xd5, 0xba, 0xe5, 0xd5, 0xc0, 0x86, 0x28, 0x33, + 0xf2, 0x35, 0x8d, 0xa6, 0xd5, 0x5b, 0x68, 0xa3, 0x5e, 0x2c, 0xd4, 0x4a, 0x18, 0x32, 0xfa, 0x6d, + 0xc0, 0x44, 0xa6, 0xb4, 0xdd, 0x08, 0x5c, 0xea, 0x88, 0xb8, 0xdf, 0x2c, 0xdb, 0x68, 0x91, 0x3d, + 0x01, 0x7d, 0x94, 0xad, 0xd5, 0x95, 0x07, 0xe6, 0x2d, 0xf5, 0x61, 0xfe, 0x3a, 0x07, 0x79, 0x19, + 0x1e, 0x36, 0xc3, 0x66, 0x3f, 0x35, 0x5e, 0xc4, 0x4f, 0x93, 0x98, 0x91, 0xeb, 0x3a, 0x66, 0x9c, + 0xd8, 0xdc, 0x1e, 0x79, 0xd4, 0x9a, 0x37, 0xf7, 0x0e, 0xf4, 0x88, 0x7b, 0x61, 0x17, 0xee, 0x2b, + 0xe8, 0x5b, 0xce, 0x70, 0x5f, 0xcb, 0x19, 0x46, 0x6f, 0xc0, 0xa4, 0x2c, 0xfe, 0x89, 0x43, 0x6b, + 0x54, 0xdc, 0xd3, 0xe3, 0x76, 0x6b, 0xbf, 0xa0, 0x94, 0x55, 0x82, 0x61, 0x8d, 0xef, 0x13, 0x62, + 0xc5, 0x14, 0x71, 0x7b, 0x55, 0xc7, 0xa0, 0x81, 0x34, 0x06, 0x7d, 0x2f, 0x07, 0x85, 0xd8, 0x76, + 0x65, 0xe2, 0x71, 0x8c, 0xa6, 0x61, 0x80, 0x32, 0xdb, 0x3b, 0x19, 0x15, 0x2c, 0x40, 0xe4, 0x98, + 0x38, 0x75, 0x59, 0xed, 0xbe, 0x48, 0x7c, 0x18, 0x4b, 0xd8, 0xdf, 0x8e, 0x0d, 0xf0, 0x18, 0x8a, + 0x29, 0xa6, 0x3e, 0xec, 0x5d, 0x44, 0x8b, 0xd1, 0x84, 0x59, 0xd5, 0x9e, 0x68, 0x13, 0xd2, 0x21, + 0x1d, 0x7c, 0xba, 0xd8, 0xfc, 0x91, 0x84, 0x57, 0x25, 0xcf, 0xef, 0xf7, 0x64, 0xcf, 0x55, 0xe2, + 0x76, 0xa7, 0x9e, 0xab, 0x56, 0xd3, 0xbf, 0x05, 0x23, 0xf1, 0x49, 0xb0, 0x5d, 0xb1, 0xb1, 0xba, + 0x0d, 0x7c, 0xf5, 0x9c, 0x03, 0x24, 0x8d, 0x60, 0x15, 0x6a, 0x4d, 0x36, 0xb9, 0x07, 0xfd, 0x35, + 0xdc, 0x08, 0xeb, 0xbc, 0x9b, 0xcd, 0xd1, 0x2c, 0xff, 0xf8, 0x4e, 0x28, 0x34, 0xac, 0x05, 0x5e, + 0x37, 0xfd, 0x4a, 0x41, 0x6f, 0x1e, 0x01, 0x4a, 0x93, 0x60, 0x12, 0xf5, 0xb2, 0x31, 0xcb, 0xe8, + 0x32, 0x66, 0x9d, 0x34, 0x6d, 0xee, 0xa4, 0x69, 0xcd, 0x08, 0xc6, 0x52, 0xb9, 0x71, 0x71, 0xd5, + 0x91, 0x53, 0xbc, 0x01, 0x03, 0x3a, 0x7c, 0x6b, 0x6f, 0x38, 0x2f, 0xda, 0xc7, 0xe4, 0xe6, 0x01, + 0x14, 0xf4, 0xd8, 0x3b, 0x35, 0x57, 0x5c, 0xd9, 0x93, 0x7c, 0x62, 0x64, 0xf3, 0x49, 0x39, 0x93, + 0x4f, 0x72, 0xf2, 0xa2, 0xb1, 0x74, 0x6e, 0xf9, 0x70, 0x22, 0xb3, 0x98, 0xbf, 0x32, 0xa0, 0xb8, + 0x1d, 0xd2, 0x80, 0xb3, 0x4c, 0x0f, 0xe2, 0x3d, 0x98, 0x56, 0x2d, 0xfa, 0x9a, 0x9c, 0xc9, 0xb6, + 0x3d, 0xba, 0x88, 0xbd, 0x93, 0x12, 0xe3, 0x34, 0x70, 0xde, 0x06, 0xbc, 0x8b, 0x00, 0x33, 0xc9, + 0x4f, 0x03, 0x37, 0xff, 0x92, 0x83, 0xf9, 0xdd, 0x6c, 0x2f, 0xf1, 0x3e, 0xf6, 0x6b, 0x98, 0x56, + 0x82, 0xb5, 0x30, 0x64, 0x7c, 0x23, 0xd8, 0x0f, 0xd1, 0x1d, 0x98, 0xde, 0x13, 0x1f, 0xc4, 0xb5, + 0x9b, 0x9e, 0x8e, 0x5c, 0x56, 0x32, 0xe4, 0x4d, 0x69, 0x42, 0x4f, 0xef, 0xa4, 0x0f, 0x42, 0x2e, + 0x43, 0x04, 0xa6, 0xb3, 0xe4, 0xa9, 0xd6, 0xf1, 0xee, 0x5f, 0x6f, 0xeb, 0x7a, 0xcd, 0x3a, 0xea, + 0xab, 0xdd, 0x64, 0xfa, 0xde, 0x94, 0xce, 0x31, 0xb4, 0x0a, 0x97, 0x62, 0xed, 0x4e, 0x79, 0x71, + 0x72, 0x45, 0xe9, 0x20, 0x74, 0xbc, 0xa8, 0x89, 0x5a, 0xdb, 0x31, 0x42, 0xd3, 0x43, 0xb8, 0x74, + 0x92, 0x35, 0xab, 0x6f, 0xef, 0x8b, 0xe8, 0x3b, 0xdb, 0xfa, 0x64, 0x95, 0xd1, 0xda, 0xfc, 0x99, + 0x01, 0x28, 0xde, 0x69, 0xb5, 0xef, 0xdb, 0x61, 0xe8, 0xa1, 0xeb, 0x30, 0xca, 0x38, 0x8e, 0x4e, + 0x5e, 0xd3, 0x46, 0xe4, 0x70, 0x7a, 0x9d, 0xfb, 0x3f, 0x98, 0x50, 0x3d, 0x15, 0x05, 0x11, 0xb7, + 0x8b, 0xf5, 0xce, 0x9e, 0xd1, 0x65, 0xfd, 0x27, 0xa1, 0xdb, 0x8f, 0xff, 0xb0, 0xb0, 0x54, 0xa1, + 0xbc, 0x5a, 0xdf, 0x5b, 0x76, 0x42, 0x5f, 0xbf, 0x9c, 0xea, 0xff, 0x6e, 0x32, 0xf7, 0x60, 0x85, + 0x37, 0x6a, 0x84, 0x49, 0x06, 0x66, 0x21, 0x1f, 0x1f, 0x37, 0xab, 0xca, 0xcc, 0x1f, 0xe4, 0x60, + 0xe6, 0x54, 0xaf, 0x91, 0x0e, 0x73, 0x17, 0x66, 0x12, 0xc5, 0xe2, 0x66, 0x44, 0xd2, 0x76, 0x52, + 0xeb, 0x99, 0x8e, 0x09, 0xe2, 0x2e, 0x44, 0xdc, 0x61, 0xba, 0x0c, 0xc3, 0x87, 0xf5, 0x90, 0x13, + 0x5b, 0x9e, 0x59, 0xb5, 0xa0, 0x41, 0x6b, 0x48, 0x8e, 0x95, 0xe5, 0x10, 0xaa, 0xc1, 0x4c, 0x73, + 0x97, 0xdc, 0x96, 0xb6, 0xb5, 0x69, 0xb0, 0x1f, 0xea, 0x4a, 0xec, 0x4e, 0x1b, 0x53, 0x9d, 0xed, + 0xe9, 0xd6, 0x54, 0x53, 0x57, 0x3d, 0x3d, 0x01, 0xaf, 0xc3, 0xb4, 0x4b, 0xd9, 0x61, 0x1d, 0x7b, + 0x74, 0x9f, 0x12, 0x37, 0xeb, 0x5d, 0xbd, 0x52, 0xbf, 0xc9, 0xec, 0x74, 0xe2, 0x58, 0xe6, 0xcf, + 0x73, 0x30, 0xbe, 0x4e, 0x48, 0x99, 0x32, 0x75, 0x75, 0xa3, 0xa2, 0xc0, 0xdb, 0x0f, 0xd1, 0x0e, + 0x8c, 0xab, 0x70, 0xe1, 0xea, 0x19, 0xd5, 0x2c, 0xe8, 0x22, 0x54, 0x8c, 0x49, 0xfe, 0x18, 0x58, + 0xf6, 0x29, 0x77, 0x60, 0x9c, 0x9f, 0x02, 0xda, 0x4d, 0x0d, 0xc2, 0x4f, 0x80, 0xae, 0x41, 0x41, + 0xbf, 0x7d, 0xe8, 0xde, 0x54, 0x4f, 0x27, 0x8f, 0x1d, 0xc3, 0x8a, 0x47, 0xb7, 0xab, 0xee, 0x41, + 0xff, 0x51, 0xe8, 0xd5, 0xfd, 0xae, 0xd2, 0xac, 0x66, 0x31, 0xbf, 0xd1, 0xbc, 0x85, 0x3b, 0x4e, + 0x95, 0xb8, 0x75, 0x8f, 0x08, 0x3f, 0xd9, 0xab, 0x3b, 0xc2, 0x0a, 0xea, 0x49, 0xc7, 0x90, 0x5d, + 0xa9, 0x21, 0x35, 0xa6, 0x9e, 0x70, 0xae, 0xc3, 0xa8, 0x26, 0x49, 0x3a, 0x62, 0x39, 0x75, 0x98, + 0xd4, 0x70, 0xd2, 0x00, 0x6b, 0xf5, 0xb9, 0x9e, 0x93, 0x3e, 0xb7, 0x01, 0xc0, 0x29, 0x89, 0xa4, + 0x8f, 0xc5, 0xf1, 0xe0, 0x46, 0x1b, 0x27, 0x3b, 0xc5, 0xe2, 0xd6, 0x20, 0xd7, 0xbf, 0xd8, 0x59, + 0xce, 0xd4, 0x77, 0x96, 0x33, 0x6d, 0x01, 0x6a, 0x41, 0xde, 0xdd, 0xdd, 0x44, 0x08, 0x7a, 0x79, + 0x9c, 0x66, 0x7a, 0x2d, 0xf9, 0x5b, 0xa4, 0x5b, 0xce, 0xbd, 0x4c, 0x0c, 0x51, 0xcb, 0x1e, 0xe6, + 0xdc, 0x4b, 0x3b, 0x3d, 0xdf, 0x36, 0x60, 0x64, 0x55, 0x25, 0x39, 0x7d, 0xaa, 0x51, 0x09, 0x06, + 0x74, 0xda, 0xd3, 0x89, 0x33, 0xfe, 0x44, 0x04, 0x06, 0xfe, 0x8e, 0x11, 0x26, 0xc6, 0x36, 0xff, + 0xdf, 0x80, 0x61, 0x59, 0x49, 0x5a, 0xc4, 0x09, 0x85, 0x46, 0x67, 0x5e, 0x82, 0x76, 0x61, 0xc2, + 0xc3, 0x9c, 0x30, 0x6e, 0x8b, 0x63, 0x2b, 0xcb, 0xad, 0x30, 0xd5, 0xd0, 0x3c, 0x23, 0x04, 0x68, + 0x7c, 0x0b, 0x29, 0xfe, 0xac, 0x48, 0xf3, 0x75, 0x28, 0xa4, 0xe9, 0x7f, 0xa3, 0xcc, 0xd0, 0x35, + 0x18, 0x69, 0x2a, 0x5e, 0x54, 0xd6, 0x1b, 0xb6, 0x0a, 0xd9, 0xea, 0x85, 0x99, 0x3f, 0x32, 0x60, + 0x28, 0x03, 0x84, 0xe6, 0x60, 0xb0, 0x35, 0x88, 0xa7, 0x03, 0x5f, 0xe7, 0x72, 0x95, 0xbd, 0xd8, + 0xf5, 0xbc, 0xc0, 0xc5, 0xce, 0xf4, 0xa1, 0x4f, 0x3d, 0x64, 0xdd, 0x02, 0xa3, 0xd6, 0x4d, 0xd0, + 0x31, 0x6a, 0x82, 0xe5, 0xb0, 0x1b, 0x9d, 0x8d, 0x43, 0xf3, 0x3b, 0x06, 0x2c, 0xac, 0x56, 0x2a, + 0x11, 0xa9, 0x60, 0x4e, 0xd2, 0xad, 0x7d, 0x2a, 0xcf, 0xb7, 0xde, 0xac, 0x8e, 0x6e, 0xe3, 0x6f, + 0xc2, 0x88, 0x76, 0x06, 0x15, 0x1b, 0x62, 0x4b, 0x5f, 0x69, 0x63, 0x69, 0x75, 0x74, 0xb4, 0x9c, + 0x82, 0x9f, 0xf9, 0x62, 0xe6, 0x07, 0x06, 0xcc, 0x25, 0x4a, 0xad, 0x9e, 0xa2, 0x51, 0xfb, 0xb3, + 0xf0, 0xb7, 0x54, 0x63, 0x55, 0x54, 0xae, 0x41, 0xe8, 0x97, 0x89, 0x43, 0x7d, 0xec, 0xb1, 0x36, + 0x95, 0xeb, 0x45, 0x51, 0xb9, 0x2a, 0x0a, 0xb9, 0xf9, 0xbd, 0x56, 0xf2, 0x6d, 0x12, 0x40, 0x0f, + 0x23, 0x1c, 0xf0, 0xd5, 0x3a, 0xaf, 0x86, 0x11, 0xfd, 0x6f, 0x15, 0xd2, 0x4a, 0x30, 0x50, 0x11, + 0xa3, 0xfa, 0xcf, 0x79, 0x06, 0xad, 0xf8, 0x13, 0xdd, 0x81, 0x7e, 0x1d, 0xca, 0x73, 0x9d, 0x84, + 0x72, 0x4d, 0x6c, 0xbe, 0x0f, 0x43, 0xab, 0x72, 0x6d, 0x52, 0x58, 0x8a, 0x1f, 0x35, 0xe3, 0x47, + 0x2f, 0x8a, 0xff, 0x91, 0x01, 0x23, 0x0f, 0xf6, 0xf7, 0x49, 0x47, 0x32, 0x36, 0x60, 0x2c, 0x20, + 0xdc, 0x56, 0x9f, 0xfa, 0x75, 0xbe, 0x33, 0x71, 0xa3, 0x01, 0xe1, 0x0f, 0x15, 0x9b, 0x7c, 0x87, + 0x47, 0x33, 0x90, 0xa7, 0xcc, 0x3e, 0xc2, 0x9e, 0xee, 0x52, 0xe4, 0xad, 0x01, 0xca, 0x9e, 0x8a, + 0x4f, 0xb3, 0x06, 0x45, 0x69, 0x9c, 0x2d, 0x1a, 0x3c, 0x0e, 0xc5, 0xae, 0x62, 0xaf, 0x8d, 0x7d, + 0xd6, 0x61, 0xd8, 0xa7, 0x81, 0x1d, 0x68, 0xaa, 0x6e, 0x0e, 0xc8, 0x90, 0x9f, 0xa2, 0xdf, 0xf8, + 0xad, 0x01, 0x85, 0x07, 0xf1, 0x35, 0x7b, 0xb7, 0x51, 0x23, 0x68, 0x0e, 0x4a, 0xef, 0x04, 0xac, + 0x46, 0x1c, 0x99, 0x0c, 0x9a, 0xe6, 0x8a, 0x17, 0x10, 0x40, 0xbf, 0xf2, 0xae, 0xa2, 0x81, 0x0a, + 0x30, 0xb8, 0x49, 0x7d, 0xca, 0xd7, 0xa9, 0xe7, 0x15, 0x73, 0xe8, 0x22, 0x4c, 0xc9, 0xcf, 0x2d, + 0xcc, 0x9d, 0xaa, 0xa5, 0xfe, 0x3c, 0x40, 0x76, 0x98, 0x8a, 0x3d, 0x68, 0x0a, 0x50, 0x3a, 0xf7, + 0x98, 0x3c, 0x57, 0xe3, 0xbd, 0x68, 0x12, 0xc6, 0xf4, 0x1b, 0xa5, 0x7e, 0x7e, 0xa0, 0x61, 0x50, + 0xec, 0x13, 0x50, 0x0f, 0x8e, 0x6b, 0x34, 0x6a, 0xa8, 0xc9, 0x1d, 0xc2, 0xb9, 0x27, 0xff, 0x70, + 0xa1, 0xd8, 0x2f, 0xa0, 0x9e, 0xec, 0xef, 0x33, 0xc2, 0x05, 0x7e, 0x7c, 0x67, 0x2c, 0x0e, 0x08, + 0x6d, 0x76, 0x1a, 0x01, 0xaf, 0x12, 0x4e, 0x9d, 0x62, 0x7e, 0xed, 0xe0, 0xd3, 0x2f, 0xe6, 0x8d, + 0xcf, 0xbe, 0x98, 0x37, 0xfe, 0xf8, 0xc5, 0xbc, 0xf1, 0xd1, 0x97, 0xf3, 0x17, 0x3e, 0xfb, 0x72, + 0xfe, 0xc2, 0xef, 0xbe, 0x9c, 0xbf, 0xf0, 0xee, 0xdb, 0x99, 0x2c, 0xb1, 0x11, 0x9f, 0x9f, 0x4d, + 0xbc, 0xc7, 0x56, 0x92, 0xd3, 0x74, 0xd3, 0x09, 0x23, 0x92, 0xfd, 0xac, 0x62, 0x1a, 0xac, 0xf8, + 0xa1, 0xa8, 0x03, 0x58, 0xfa, 0x37, 0x79, 0x32, 0xa3, 0xac, 0x1c, 0xdd, 0xde, 0xeb, 0x97, 0xcf, + 0xc0, 0xaf, 0xfd, 0x35, 0x00, 0x00, 0xff, 0xff, 0x65, 0xe7, 0xaa, 0x1b, 0xa5, 0x28, 0x00, 0x00, } func (this *EnforcedRestrictionsContract) Equal(that interface{}) bool { @@ -2628,14 +2648,25 @@ func (this *Params) Equal(that interface{}) bool { if this.PostOnlyModeBlocksAmountAfterDowntime != that1.PostOnlyModeBlocksAmountAfterDowntime { return false } - if len(this.EnforcedRestrictionsContracts) != len(that1.EnforcedRestrictionsContracts) { + if len(this.DeprecatedEnforcedRestrictionsContracts) != len(that1.DeprecatedEnforcedRestrictionsContracts) { + return false + } + for i := range this.DeprecatedEnforcedRestrictionsContracts { + if !this.DeprecatedEnforcedRestrictionsContracts[i].Equal(&that1.DeprecatedEnforcedRestrictionsContracts[i]) { + return false + } + } + if len(this.WhiteKnightLiquidators) != len(that1.WhiteKnightLiquidators) { return false } - for i := range this.EnforcedRestrictionsContracts { - if !this.EnforcedRestrictionsContracts[i].Equal(&that1.EnforcedRestrictionsContracts[i]) { + for i := range this.WhiteKnightLiquidators { + if this.WhiteKnightLiquidators[i] != that1.WhiteKnightLiquidators[i] { return false } } + if !this.WhiteKnightLiquidatorRewardShareRate.Equal(that1.WhiteKnightLiquidatorRewardShareRate) { + return false + } return true } func (m *EnforcedRestrictionsContract) Marshal() (dAtA []byte, err error) { @@ -2695,10 +2726,33 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.EnforcedRestrictionsContracts) > 0 { - for iNdEx := len(m.EnforcedRestrictionsContracts) - 1; iNdEx >= 0; iNdEx-- { + { + size := m.WhiteKnightLiquidatorRewardShareRate.Size() + i -= size + if _, err := m.WhiteKnightLiquidatorRewardShareRate.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xb2 + if len(m.WhiteKnightLiquidators) > 0 { + for iNdEx := len(m.WhiteKnightLiquidators) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.WhiteKnightLiquidators[iNdEx]) + copy(dAtA[i:], m.WhiteKnightLiquidators[iNdEx]) + i = encodeVarintExchange(dAtA, i, uint64(len(m.WhiteKnightLiquidators[iNdEx]))) + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xaa + } + } + if len(m.DeprecatedEnforcedRestrictionsContracts) > 0 { + for iNdEx := len(m.DeprecatedEnforcedRestrictionsContracts) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.EnforcedRestrictionsContracts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.DeprecatedEnforcedRestrictionsContracts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -4876,12 +4930,20 @@ func (m *Params) Size() (n int) { if m.PostOnlyModeBlocksAmountAfterDowntime != 0 { n += 2 + sovExchange(uint64(m.PostOnlyModeBlocksAmountAfterDowntime)) } - if len(m.EnforcedRestrictionsContracts) > 0 { - for _, e := range m.EnforcedRestrictionsContracts { + if len(m.DeprecatedEnforcedRestrictionsContracts) > 0 { + for _, e := range m.DeprecatedEnforcedRestrictionsContracts { l = e.Size() n += 2 + l + sovExchange(uint64(l)) } } + if len(m.WhiteKnightLiquidators) > 0 { + for _, s := range m.WhiteKnightLiquidators { + l = len(s) + n += 2 + l + sovExchange(uint64(l)) + } + } + l = m.WhiteKnightLiquidatorRewardShareRate.Size() + n += 2 + l + sovExchange(uint64(l)) return n } @@ -6674,7 +6736,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { } case 36: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EnforcedRestrictionsContracts", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeprecatedEnforcedRestrictionsContracts", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6701,8 +6763,74 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.EnforcedRestrictionsContracts = append(m.EnforcedRestrictionsContracts, EnforcedRestrictionsContract{}) - if err := m.EnforcedRestrictionsContracts[len(m.EnforcedRestrictionsContracts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.DeprecatedEnforcedRestrictionsContracts = append(m.DeprecatedEnforcedRestrictionsContracts, EnforcedRestrictionsContract{}) + if err := m.DeprecatedEnforcedRestrictionsContracts[len(m.DeprecatedEnforcedRestrictionsContracts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 37: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WhiteKnightLiquidators", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + 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 ErrInvalidLengthExchange + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WhiteKnightLiquidators = append(m.WhiteKnightLiquidators, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 38: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WhiteKnightLiquidatorRewardShareRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + 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 ErrInvalidLengthExchange + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.WhiteKnightLiquidatorRewardShareRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/chain/exchange/types/v2/fee_discounts.go b/chain/exchange/types/v2/fee_discounts.go index 407f3c4c..d8137df4 100644 --- a/chain/exchange/types/v2/fee_discounts.go +++ b/chain/exchange/types/v2/fee_discounts.go @@ -108,7 +108,7 @@ func (c *FeeDiscountConfig) GetFeeDiscountRate(account sdk.AccAddress, isMaker b defer c.AccountFeeTiersMux.RUnlock() tier, ok := c.AccountFeeTiers[types.SdkAccAddressToAccount(account)] - if !ok { + if !ok || tier == nil { // should never happen but just in case return nil } diff --git a/chain/exchange/types/v2/msgs.go b/chain/exchange/types/v2/msgs.go index 8ebac86b..51145e56 100644 --- a/chain/exchange/types/v2/msgs.go +++ b/chain/exchange/types/v2/msgs.go @@ -612,9 +612,15 @@ func (msg MsgInstantSpotMarketLaunch) ValidateBasic() error { if msg.BaseDenom == "" { return errors.Wrap(types.ErrInvalidBaseDenom, "base denom should not be empty") } + if len(msg.BaseDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidBaseDenom, "base denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } if msg.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } if msg.BaseDenom == msg.QuoteDenom { return types.ErrSameDenoms } @@ -671,6 +677,9 @@ func (msg MsgInstantPerpetualMarketLaunch) ValidateBasic() error { if msg.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } oracleParams := types.NewOracleParams(msg.OracleBase, msg.OracleQuote, msg.OracleScaleFactor, msg.OracleType) if err := oracleParams.ValidateBasic(); err != nil { return err @@ -746,12 +755,15 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) ValidateBasic() error { if msg.Ticker == "" || len(msg.Ticker) > types.MaxTickerLength { return errors.Wrapf(types.ErrInvalidTicker, "ticker should not be empty or exceed %d characters", types.MaxTickerLength) } - if msg.OracleSymbol == "" { - return errors.Wrap(types.ErrInvalidOracle, "oracle symbol should not be empty") + if msg.OracleSymbol == "" || len(msg.OracleSymbol) > types.MaxOracleSymbolLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle symbol should not be empty or exceed %d characters", types.MaxOracleSymbolLength) } if msg.OracleProvider == "" { return errors.Wrap(types.ErrInvalidOracle, "oracle provider should not be empty") } + if len(msg.OracleProvider) > types.MaxOracleProviderLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle provider should not exceed %d characters", types.MaxOracleProviderLength) + } if msg.OracleType != oracletypes.OracleType_Provider { return errors.Wrap(types.ErrInvalidOracleType, msg.OracleType.String()) } @@ -779,6 +791,9 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) ValidateBasic() error { if msg.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } if err := types.ValidateTickSize(msg.MinPriceTickSize); err != nil { return errors.Wrap(types.ErrInvalidPriceTickSize, err.Error()) } @@ -829,6 +844,9 @@ func (msg MsgInstantExpiryFuturesMarketLaunch) ValidateBasic() error { if msg.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(msg.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } oracleParams := types.NewOracleParams(msg.OracleBase, msg.OracleQuote, msg.OracleScaleFactor, msg.OracleType) if err := oracleParams.ValidateBasic(); err != nil { @@ -1629,9 +1647,8 @@ func (msg *MsgIncreasePositionMargin) ValidateBasic() error { return err } - _, ok := types.IsValidSubaccountID(msg.DestinationSubaccountId) - if !ok { - return errors.Wrap(types.ErrBadSubaccountID, msg.DestinationSubaccountId) + if err := types.CheckValidSubaccountIDOrNonce(senderAddr, msg.DestinationSubaccountId); err != nil { + return err } return nil diff --git a/chain/exchange/types/v2/params.go b/chain/exchange/types/v2/params.go index 785e04d4..ce6d39ea 100644 --- a/chain/exchange/types/v2/params.go +++ b/chain/exchange/types/v2/params.go @@ -35,6 +35,8 @@ var ( KeyInjRewardStakedRequirementThreshold = []byte("KeyInjRewardStakedRequirementThreshold") KeyTradingRewardsVestingDuration = []byte("TradingRewardsVestingDuration") KeyLiquidatorRewardShareRate = []byte("LiquidatorRewardShareRate") + KeyWhiteKnightLiquidators = []byte("WhiteKnightLiquidators") + KeyWhiteKnightLiquidatorRewardShareRate = []byte("WhiteKnightLiquidatorRewardShareRate") KeyBinaryOptionsMarketInstantListingFee = []byte("BinaryOptionsMarketInstantListingFee") KeyAtomicMarketOrderAccessLevel = []byte("AtomicMarketOrderAccessLevel") KeySpotAtomicMarketOrderFeeMultiplier = []byte("SpotAtomicMarketOrderFeeMultiplier") @@ -89,6 +91,16 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { &p.LiquidatorRewardShareRate, types.ValidateLiquidatorRewardShareRate, ), + paramtypes.NewParamSetPair( + KeyWhiteKnightLiquidators, + &p.WhiteKnightLiquidators, + types.ValidateWhiteKnightLiquidators, + ), + paramtypes.NewParamSetPair( + KeyWhiteKnightLiquidatorRewardShareRate, + &p.WhiteKnightLiquidatorRewardShareRate, + types.ValidateWhiteKnightLiquidatorRewardShareRate, + ), paramtypes.NewParamSetPair( KeyBinaryOptionsMarketInstantListingFee, &p.BinaryOptionsMarketInstantListingFee, @@ -159,6 +171,8 @@ func DefaultParams() Params { InjRewardStakedRequirementThreshold: math.NewIntWithDecimal(100, 18), // 100 INJ TradingRewardsVestingDuration: 604800, // 7 days LiquidatorRewardShareRate: math.LegacyNewDecWithPrec(5, 2), // 5% liquidator reward + WhiteKnightLiquidatorRewardShareRate: math.LegacyNewDecWithPrec(5, 1), // 50% white knight liquidator reward + WhiteKnightLiquidators: []string{}, BinaryOptionsMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(types.BinaryOptionsMarketInstantListingFee, 18)), AtomicMarketOrderAccessLevel: AtomicMarketOrderAccessLevel_SmartContractsOnly, SpotAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier @@ -169,7 +183,6 @@ func DefaultParams() Params { PostOnlyModeHeightThreshold: 0, MarginDecreasePriceTimestampThresholdSeconds: 60, ExchangeAdmins: []string{}, - InjAuctionMaxCap: types.DefaultInjAuctionMaxCap, FixedGasEnabled: false, EmitLegacyVersionEvents: true, PostOnlyModeBlocksAmount: 2000, // default 2000 blocks @@ -228,6 +241,15 @@ func (p Params) Validate() error { if err := types.ValidateLiquidatorRewardShareRate(p.LiquidatorRewardShareRate); err != nil { return fmt.Errorf("liquidator_reward_share_rate is incorrect: %w", err) } + if err := types.ValidateWhiteKnightLiquidatorRewardShareRate(p.WhiteKnightLiquidatorRewardShareRate); err != nil { + return fmt.Errorf("white_knight_liquidator_reward_share_rate is incorrect: %w", err) + } + if p.WhiteKnightLiquidatorRewardShareRate.LT(p.LiquidatorRewardShareRate) { + return errors.New("white_knight_liquidator_reward_share_rate must be greater than or equal to liquidator_reward_share_rate") + } + if err := types.ValidateWhiteKnightLiquidators(p.WhiteKnightLiquidators); err != nil { + return fmt.Errorf("white_knight_liquidators is incorrect: %w", err) + } if err := types.ValidateBinaryOptionsMarketInstantListingFee(p.BinaryOptionsMarketInstantListingFee); err != nil { return fmt.Errorf("binary_options_market_instant_listing_fee is incorrect: %w", err) } @@ -269,10 +291,6 @@ func (p Params) Validate() error { return fmt.Errorf("post_only_mode_blocks_amount_after_downtime is incorrect: %w", err) } - if err := ValidateEnforcedRestrictionsContracts(p.EnforcedRestrictionsContracts); err != nil { - return fmt.Errorf("enforced_restrictions_contracts are invalid: %w", err) - } - return nil } @@ -366,14 +384,3 @@ func ValidateEVMAddresses(addresses []string) error { return nil } - -func ValidateEnforcedRestrictionsContracts(contracts []EnforcedRestrictionsContract) error { - for _, contract := range contracts { - if !ethcommon.IsHexAddress(contract.ContractAddress) { - return fmt.Errorf("contract address is not in EVM format: %s", contract.ContractAddress) - } - // pause_event_signature can be empty (will default to "Pause()") - } - - return nil -} diff --git a/chain/exchange/types/v2/position.go b/chain/exchange/types/v2/position.go index 53d0feb8..1f9eff72 100644 --- a/chain/exchange/types/v2/position.go +++ b/chain/exchange/types/v2/position.go @@ -201,11 +201,6 @@ func (p *Position) GetLiquidationMarketOrderWorstPrice(markPrice math.LegacyDec, return &bankruptcyPrice } -func (p *Position) GetOffsettingMarketOrderWorstPrice(funding *PerpetualMarketFunding) *math.LegacyDec { - bankruptcyPrice := p.GetBankruptcyPrice(funding) - return &bankruptcyPrice -} - func (p *Position) GetBankruptcyPrice(funding *PerpetualMarketFunding) (bankruptcyPrice math.LegacyDec) { return p.GetLiquidationPrice(math.LegacyZeroDec(), funding) } @@ -333,6 +328,65 @@ func (p *Position) GetPayoutFromPnl(closingPrice, closingQuantity math.LegacyDec return pnlNotional } +func splitPositionMargin(totalMargin, totalQuantity, closingQuantity math.LegacyDec) ( + closingMargin, remainingMargin math.LegacyDec, +) { + if totalQuantity.IsZero() || closingQuantity.IsZero() { + return math.LegacyZeroDec(), totalMargin + } + + if closingQuantity.Equal(totalQuantity) { + return totalMargin, math.LegacyZeroDec() + } + + remainingQuantity := totalQuantity.Sub(closingQuantity) + remainingMargin = totalMargin.Mul(remainingQuantity).Quo(totalQuantity) + closingMargin = totalMargin.Sub(remainingMargin) + + return closingMargin, remainingMargin +} + +// ApplyBankruptCloseWithoutPayouts closes up to closingQuantity at closingPrice with an explicit +// zero payout, while preserving the remaining position state. +func (p *Position) ApplyBankruptCloseWithoutPayouts( + closingPrice, closingQuantity math.LegacyDec, +) (pnl math.LegacyDec, positionDelta *PositionDelta) { + if p == nil { + return math.LegacyZeroDec(), nil + } + + if p.Quantity.IsZero() || closingQuantity.IsZero() { + return math.LegacyZeroDec(), &PositionDelta{ + IsLong: !p.IsLong, + ExecutionQuantity: math.LegacyZeroDec(), + ExecutionMargin: math.LegacyZeroDec(), + ExecutionPrice: closingPrice, + } + } + + closingQuantity = math.LegacyMinDec(p.Quantity, closingQuantity) + positionDelta = &PositionDelta{ + IsLong: !p.IsLong, + ExecutionQuantity: closingQuantity, + ExecutionMargin: math.LegacyZeroDec(), + ExecutionPrice: closingPrice, + } + + pnl = p.GetPayoutFromPnl(closingPrice, closingQuantity) + remainingMargin := p.Margin.Add(pnl) + remainingQuantity := p.Quantity.Sub(closingQuantity) + + if remainingQuantity.IsZero() { + p.ClosePositionWithoutPayouts() + return pnl, positionDelta + } + + p.Quantity = remainingQuantity + p.Margin = remainingMargin + + return pnl, positionDelta +} + func (p *Position) ApplyPositionDelta(delta *PositionDelta, tradingFeeForReduceOnly math.LegacyDec) ( payout, closeExecutionMargin, collateralizationMargin, pnl math.LegacyDec, ) { @@ -372,12 +426,12 @@ func (p *Position) ApplyPositionDelta(delta *PositionDelta, tradingFeeForReduceO pnlNotional = pnlNotional.Sub(tradingFeeForReduceOnly) } - positionClosingMargin := p.Margin.Mul(closingQuantity).Quo(p.Quantity) + positionClosingMargin, remainingMargin := splitPositionMargin(p.Margin, p.Quantity, closingQuantity) payout = pnlNotional.Add(positionClosingMargin) // for netting opposite direction newPositionQuantity := p.Quantity.Sub(closingQuantity) - p.Margin = p.Margin.Mul(newPositionQuantity).Quo(p.Quantity) + p.Margin = remainingMargin p.Quantity = newPositionQuantity isFlippingPosition := delta.ExecutionQuantity.GT(closingQuantity) diff --git a/chain/exchange/types/v2/proposal.go b/chain/exchange/types/v2/proposal.go index 336f1215..c512ce70 100644 --- a/chain/exchange/types/v2/proposal.go +++ b/chain/exchange/types/v2/proposal.go @@ -403,9 +403,15 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error { if p.BaseDenom == "" { return errors.Wrap(types.ErrInvalidBaseDenom, "base denom should not be empty") } + if len(p.BaseDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidBaseDenom, "base denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } if p.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } if p.BaseDenom == p.QuoteDenom { return types.ErrSameDenoms } @@ -734,6 +740,10 @@ func (d *DenomDecimals) Validate() error { return errors.Wrap(sdkerrors.ErrInvalidCoins, d.Denom) } + if err := sdk.ValidateDenom(d.Denom); err != nil { + return errors.Wrapf(sdkerrors.ErrInvalidCoins, "invalid denom: %s", d.Denom) + } + if d.Decimals <= 0 || d.Decimals > uint64(types.MaxDecimals) { return errors.Wrapf(types.ErrInvalidDenomDecimal, "invalid decimals passed: %d", d.Decimals) } @@ -758,16 +768,21 @@ func (p *OracleParams) ValidateBasic() error { if p.OracleBase == "" { return errors.Wrap(types.ErrInvalidOracle, "oracle base should not be empty") } + if len(p.OracleBase) > types.MaxOracleSymbolLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle base should not exceed %d characters", types.MaxOracleSymbolLength) + } if p.OracleQuote == "" { return errors.Wrap(types.ErrInvalidOracle, "oracle quote should not be empty") } + if len(p.OracleQuote) > types.MaxOracleSymbolLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle quote should not exceed %d characters", types.MaxOracleSymbolLength) + } if p.OracleBase == p.OracleQuote { return types.ErrSameOracles } switch p.OracleType { - case oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase, - oracletypes.OracleType_Chainlink, oracletypes.OracleType_Razor, oracletypes.OracleType_Dia, - oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth, + case oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase, oracletypes.OracleType_Razor, + oracletypes.OracleType_Dia, oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth, oracletypes.OracleType_Provider, oracletypes.OracleType_Stork, oracletypes.OracleType_ChainlinkDataStreams: default: @@ -799,9 +814,15 @@ func (p *ProviderOracleParams) ValidateBasic() error { if p.Symbol == "" { return errors.Wrap(types.ErrInvalidOracle, "oracle symbol should not be empty") } + if len(p.Symbol) > types.MaxOracleSymbolLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle symbol should not exceed %d characters", types.MaxOracleSymbolLength) + } if p.Provider == "" { return errors.Wrap(types.ErrInvalidOracle, "oracle provider should not be empty") } + if len(p.Provider) > types.MaxOracleProviderLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle provider should not exceed %d characters", types.MaxOracleProviderLength) + } if p.OracleType != oracletypes.OracleType_Provider { return errors.Wrap(types.ErrInvalidOracleType, p.OracleType.String()) @@ -872,6 +893,9 @@ func (p *PerpetualMarketLaunchProposal) ValidateBasic() error { if p.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } oracleParams := NewOracleParams(p.OracleBase, p.OracleQuote, p.OracleScaleFactor, p.OracleType) if err := oracleParams.ValidateBasic(); err != nil { @@ -982,6 +1006,9 @@ func (p *ExpiryFuturesMarketLaunchProposal) ValidateBasic() error { if p.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } oracleParams := NewOracleParams(p.OracleBase, p.OracleQuote, p.OracleScaleFactor, p.OracleType) if err := oracleParams.ValidateBasic(); err != nil { @@ -1617,12 +1644,15 @@ func (p *BinaryOptionsMarketLaunchProposal) ValidateBasic() error { if p.Ticker == "" || len(p.Ticker) > types.MaxTickerLength { return errors.Wrapf(types.ErrInvalidTicker, "ticker should not be empty or exceed %d characters", types.MaxTickerLength) } - if p.OracleSymbol == "" { - return errors.Wrap(types.ErrInvalidOracle, "oracle symbol should not be empty") + if p.OracleSymbol == "" || len(p.OracleSymbol) > types.MaxOracleSymbolLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle symbol should not be empty or exceed %d characters", types.MaxOracleSymbolLength) } if p.OracleProvider == "" { return errors.Wrap(types.ErrInvalidOracle, "oracle provider should not be empty") } + if len(p.OracleProvider) > types.MaxOracleProviderLength { + return errors.Wrapf(types.ErrInvalidOracle, "oracle provider should not exceed %d characters", types.MaxOracleProviderLength) + } if p.OracleType != oracletypes.OracleType_Provider { return errors.Wrap(types.ErrInvalidOracleType, p.OracleType.String()) } @@ -1643,6 +1673,9 @@ func (p *BinaryOptionsMarketLaunchProposal) ValidateBasic() error { if p.QuoteDenom == "" { return errors.Wrap(types.ErrInvalidQuoteDenom, "quote denom should not be empty") } + if len(p.QuoteDenom) > types.MaxMarketLaunchDenomLength { + return errors.Wrapf(types.ErrInvalidQuoteDenom, "quote denom should not exceed %d characters", types.MaxMarketLaunchDenomLength) + } if err := types.ValidateMakerFee(p.MakerFeeRate); err != nil { return err } diff --git a/chain/insurance/types/codec.go b/chain/insurance/types/codec.go index b20eff35..1d4ba355 100644 --- a/chain/insurance/types/codec.go +++ b/chain/insurance/types/codec.go @@ -16,8 +16,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgUnderwrite{}, "insurance/MsgUnderwrite", nil) cdc.RegisterConcrete(&MsgRequestRedemption{}, "insurance/MsgRequestRedemption", nil) cdc.RegisterConcrete(&MsgUpdateParams{}, "insurance/MsgUpdateParams", nil) + cdc.RegisterConcrete(&MsgClaimVoucher{}, "insurance/MsgClaimVoucher", nil) cdc.RegisterConcrete(&Params{}, "insurance/Params", nil) - } func RegisterInterfaces(registry types.InterfaceRegistry) { @@ -26,6 +26,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgUnderwrite{}, &MsgRequestRedemption{}, &MsgUpdateParams{}, + &MsgClaimVoucher{}, ) msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) diff --git a/chain/insurance/types/events.pb.go b/chain/insurance/types/events.pb.go index b81ef035..c77ad45d 100644 --- a/chain/insurance/types/events.pb.go +++ b/chain/insurance/types/events.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" @@ -166,6 +167,60 @@ func (m *EventWithdrawRedemption) GetRedeemCoin() types.Coin { return types.Coin{} } +type EventWithdrawRedemptionFailed struct { + // redemption schedule that failed to withdraw + Schedule *RedemptionSchedule `protobuf:"bytes,1,opt,name=schedule,proto3" json:"schedule,omitempty"` + // error produced while processing the redemption withdrawal + WithdrawErr string `protobuf:"bytes,2,opt,name=withdraw_err,json=withdrawErr,proto3" json:"withdraw_err,omitempty"` +} + +func (m *EventWithdrawRedemptionFailed) Reset() { *m = EventWithdrawRedemptionFailed{} } +func (m *EventWithdrawRedemptionFailed) String() string { return proto.CompactTextString(m) } +func (*EventWithdrawRedemptionFailed) ProtoMessage() {} +func (*EventWithdrawRedemptionFailed) Descriptor() ([]byte, []int) { + return fileDescriptor_238c43c591e30770, []int{3} +} +func (m *EventWithdrawRedemptionFailed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventWithdrawRedemptionFailed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventWithdrawRedemptionFailed.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventWithdrawRedemptionFailed) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventWithdrawRedemptionFailed.Merge(m, src) +} +func (m *EventWithdrawRedemptionFailed) XXX_Size() int { + return m.Size() +} +func (m *EventWithdrawRedemptionFailed) XXX_DiscardUnknown() { + xxx_messageInfo_EventWithdrawRedemptionFailed.DiscardUnknown(m) +} + +var xxx_messageInfo_EventWithdrawRedemptionFailed proto.InternalMessageInfo + +func (m *EventWithdrawRedemptionFailed) GetSchedule() *RedemptionSchedule { + if m != nil { + return m.Schedule + } + return nil +} + +func (m *EventWithdrawRedemptionFailed) GetWithdrawErr() string { + if m != nil { + return m.WithdrawErr + } + return "" +} + type EventUnderwrite struct { // address of the underwriter Underwriter string `protobuf:"bytes,1,opt,name=underwriter,proto3" json:"underwriter,omitempty"` @@ -181,7 +236,7 @@ func (m *EventUnderwrite) Reset() { *m = EventUnderwrite{} } func (m *EventUnderwrite) String() string { return proto.CompactTextString(m) } func (*EventUnderwrite) ProtoMessage() {} func (*EventUnderwrite) Descriptor() ([]byte, []int) { - return fileDescriptor_238c43c591e30770, []int{3} + return fileDescriptor_238c43c591e30770, []int{4} } func (m *EventUnderwrite) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -248,7 +303,7 @@ func (m *EventInsuranceWithdraw) Reset() { *m = EventInsuranceWithdraw{} func (m *EventInsuranceWithdraw) String() string { return proto.CompactTextString(m) } func (*EventInsuranceWithdraw) ProtoMessage() {} func (*EventInsuranceWithdraw) Descriptor() ([]byte, []int) { - return fileDescriptor_238c43c591e30770, []int{4} + return fileDescriptor_238c43c591e30770, []int{5} } func (m *EventInsuranceWithdraw) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -298,12 +353,61 @@ func (m *EventInsuranceWithdraw) GetWithdrawal() types.Coin { return types.Coin{} } +type EventSetVoucher struct { + // The bech32 address of the voucher holder. + Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + // The new voucher amount. A zero coin signals voucher deletion. + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher"` +} + +func (m *EventSetVoucher) Reset() { *m = EventSetVoucher{} } +func (m *EventSetVoucher) String() string { return proto.CompactTextString(m) } +func (*EventSetVoucher) ProtoMessage() {} +func (*EventSetVoucher) Descriptor() ([]byte, []int) { + return fileDescriptor_238c43c591e30770, []int{6} +} +func (m *EventSetVoucher) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventSetVoucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventSetVoucher.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventSetVoucher) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSetVoucher.Merge(m, src) +} +func (m *EventSetVoucher) XXX_Size() int { + return m.Size() +} +func (m *EventSetVoucher) XXX_DiscardUnknown() { + xxx_messageInfo_EventSetVoucher.DiscardUnknown(m) +} + +var xxx_messageInfo_EventSetVoucher proto.InternalMessageInfo + +func (m *EventSetVoucher) GetAddr() string { + if m != nil { + return m.Addr + } + return "" +} + func init() { proto.RegisterType((*EventInsuranceFundUpdate)(nil), "injective.insurance.v1beta1.EventInsuranceFundUpdate") proto.RegisterType((*EventRequestRedemption)(nil), "injective.insurance.v1beta1.EventRequestRedemption") proto.RegisterType((*EventWithdrawRedemption)(nil), "injective.insurance.v1beta1.EventWithdrawRedemption") + proto.RegisterType((*EventWithdrawRedemptionFailed)(nil), "injective.insurance.v1beta1.EventWithdrawRedemptionFailed") proto.RegisterType((*EventUnderwrite)(nil), "injective.insurance.v1beta1.EventUnderwrite") proto.RegisterType((*EventInsuranceWithdraw)(nil), "injective.insurance.v1beta1.EventInsuranceWithdraw") + proto.RegisterType((*EventSetVoucher)(nil), "injective.insurance.v1beta1.EventSetVoucher") } func init() { @@ -311,37 +415,42 @@ func init() { } var fileDescriptor_238c43c591e30770 = []byte{ - // 471 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0x41, 0x8b, 0xd4, 0x4c, - 0x10, 0x9d, 0x7c, 0xdf, 0xb0, 0xee, 0xd4, 0x28, 0x42, 0x23, 0x1a, 0x67, 0x21, 0x2e, 0xf1, 0xb2, - 0x28, 0xa6, 0x59, 0x3d, 0x88, 0x17, 0x95, 0x15, 0x85, 0x41, 0x41, 0x88, 0x2e, 0xc2, 0x5e, 0x96, - 0x4e, 0xba, 0x9c, 0xb4, 0xbb, 0xe9, 0x8e, 0xdd, 0x9d, 0x19, 0xfc, 0x17, 0xde, 0xfd, 0x03, 0xfe, - 0x0f, 0x2f, 0x7b, 0xdc, 0xa3, 0x27, 0x91, 0x99, 0x3f, 0x22, 0xe9, 0xf4, 0x64, 0xc6, 0xcb, 0x30, - 0x17, 0x6f, 0xa9, 0xca, 0x7b, 0xaf, 0x5e, 0xf5, 0xeb, 0x86, 0x03, 0x21, 0x3f, 0x61, 0x6e, 0xc5, - 0x14, 0xa9, 0x90, 0xa6, 0xd6, 0x4c, 0xe6, 0x48, 0xa7, 0x87, 0x19, 0x5a, 0x76, 0x48, 0x71, 0x8a, - 0xd2, 0x9a, 0xa4, 0xd2, 0xca, 0x2a, 0xb2, 0xd7, 0x21, 0x93, 0x0e, 0x99, 0x78, 0xe4, 0xe8, 0xc6, - 0x44, 0x4d, 0x94, 0xc3, 0xd1, 0xe6, 0xab, 0xa5, 0x8c, 0xa2, 0x5c, 0x99, 0x52, 0x19, 0x9a, 0x31, - 0xb3, 0x12, 0xcd, 0x95, 0x90, 0xfe, 0xff, 0xfd, 0x4d, 0xc3, 0x57, 0x43, 0x1c, 0x38, 0x3e, 0x81, - 0xf0, 0x65, 0xe3, 0x67, 0xbc, 0xec, 0xbf, 0xaa, 0x25, 0x3f, 0xae, 0x38, 0xb3, 0x48, 0x9e, 0x42, - 0xff, 0x63, 0x2d, 0x79, 0x18, 0xec, 0x07, 0x07, 0xc3, 0x87, 0xf7, 0x92, 0x0d, 0x56, 0x93, 0xbf, - 0xf8, 0xa9, 0xe3, 0xc5, 0x08, 0x37, 0x9d, 0x76, 0x8a, 0x9f, 0x6b, 0x34, 0x36, 0x45, 0x8e, 0x65, - 0x65, 0x85, 0x92, 0xe4, 0x35, 0xec, 0x9a, 0xbc, 0x40, 0x5e, 0x9f, 0xa3, 0x57, 0xa7, 0x1b, 0xd5, - 0x57, 0xd4, 0x77, 0x9e, 0x96, 0x76, 0x02, 0xf1, 0xf7, 0x00, 0x6e, 0xb9, 0x39, 0x1f, 0x84, 0x2d, - 0xb8, 0x66, 0xb3, 0x7f, 0x34, 0x88, 0x3c, 0x87, 0xa1, 0x46, 0x8e, 0x58, 0x9e, 0x36, 0xa7, 0x1d, - 0xfe, 0xe7, 0xf4, 0x6e, 0x27, 0x6d, 0x1c, 0x49, 0x13, 0x47, 0xa7, 0xf3, 0x42, 0x09, 0x79, 0xd4, - 0xbf, 0xf8, 0x75, 0xa7, 0x97, 0x42, 0xcb, 0x69, 0x3a, 0xf1, 0x8f, 0x00, 0xae, 0x3b, 0xab, 0xc7, - 0x92, 0xa3, 0x9e, 0x69, 0x61, 0x91, 0xec, 0xc3, 0xb0, 0xee, 0x2a, 0xed, 0x5c, 0x0e, 0xd2, 0xf5, - 0x16, 0x19, 0xc1, 0x6e, 0xc9, 0xf4, 0x19, 0xda, 0x31, 0x77, 0x43, 0x07, 0x69, 0x57, 0x93, 0x27, - 0x70, 0x85, 0x63, 0xa5, 0x8c, 0xb0, 0xe1, 0xff, 0xdb, 0xf9, 0x59, 0xe2, 0xc9, 0x63, 0xd8, 0x31, - 0x05, 0xd3, 0x68, 0xc2, 0xfe, 0x76, 0x4c, 0x0f, 0x8f, 0xbf, 0x05, 0x3e, 0xd8, 0x2e, 0xf4, 0xe5, - 0xc9, 0x93, 0x3d, 0x18, 0xb4, 0xd6, 0x4e, 0x05, 0xf7, 0xab, 0xac, 0xbc, 0xde, 0x85, 0x6b, 0xfe, - 0xa7, 0x15, 0xf9, 0x19, 0x6a, 0xbf, 0xcc, 0xd5, 0xb6, 0xf9, 0xde, 0xf5, 0xc8, 0x33, 0x80, 0x99, - 0x57, 0x63, 0xe7, 0xdb, 0xee, 0xb4, 0x46, 0x39, 0x12, 0x17, 0xf3, 0x28, 0xb8, 0x9c, 0x47, 0xc1, - 0xef, 0x79, 0x14, 0x7c, 0x5d, 0x44, 0xbd, 0xcb, 0x45, 0xd4, 0xfb, 0xb9, 0x88, 0x7a, 0x27, 0x6f, - 0x27, 0xc2, 0x16, 0x75, 0x96, 0xe4, 0xaa, 0xa4, 0xe3, 0xe5, 0x25, 0x78, 0xc3, 0x32, 0x43, 0xbb, - 0x2b, 0xf1, 0x20, 0x57, 0x1a, 0xd7, 0xcb, 0x82, 0x09, 0x49, 0x4b, 0xd5, 0xe4, 0x6f, 0xd6, 0x9e, - 0x93, 0xfd, 0x52, 0xa1, 0xc9, 0x76, 0xdc, 0x1b, 0x7a, 0xf4, 0x27, 0x00, 0x00, 0xff, 0xff, 0xdf, - 0x1c, 0x0d, 0x6e, 0xef, 0x03, 0x00, 0x00, + // 554 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x54, 0x4f, 0x6f, 0xd3, 0x3c, + 0x18, 0x6f, 0xde, 0xb7, 0xda, 0x56, 0x77, 0x08, 0xc9, 0x42, 0x50, 0x3a, 0x91, 0x8d, 0x70, 0x60, + 0x02, 0x2d, 0xd6, 0xe0, 0x80, 0xb8, 0x00, 0x1a, 0xda, 0xa4, 0x0a, 0x24, 0xa4, 0x8c, 0x81, 0xb4, + 0x4b, 0xe5, 0xc6, 0x0f, 0x8d, 0x69, 0x63, 0x17, 0xdb, 0x69, 0xc5, 0x67, 0xe0, 0x00, 0x77, 0xbe, + 0x00, 0xdf, 0x83, 0xcb, 0x8e, 0x3b, 0x22, 0x0e, 0x13, 0x6a, 0xbf, 0x08, 0x8a, 0xe3, 0xa4, 0xe5, + 0x40, 0xe9, 0x01, 0x4e, 0x89, 0x1f, 0x3f, 0xbf, 0x3f, 0xfe, 0xf9, 0x91, 0xd1, 0x2e, 0x17, 0x6f, + 0x21, 0x36, 0x7c, 0x0c, 0x84, 0x0b, 0x9d, 0x29, 0x2a, 0x62, 0x20, 0xe3, 0xfd, 0x1e, 0x18, 0xba, + 0x4f, 0x60, 0x0c, 0xc2, 0xe8, 0x70, 0xa4, 0xa4, 0x91, 0x78, 0xab, 0xea, 0x0c, 0xab, 0xce, 0xd0, + 0x75, 0xb6, 0xaf, 0xf4, 0x65, 0x5f, 0xda, 0x3e, 0x92, 0xff, 0x15, 0x90, 0xb6, 0x1f, 0x4b, 0x9d, + 0x4a, 0x4d, 0x7a, 0x54, 0xcf, 0x49, 0x63, 0xc9, 0x85, 0xdb, 0xbf, 0xbb, 0x4c, 0x7c, 0x2e, 0x62, + 0x9b, 0x83, 0x53, 0xd4, 0x3a, 0xcc, 0xfd, 0x74, 0xca, 0xfa, 0x51, 0x26, 0xd8, 0xc9, 0x88, 0x51, + 0x03, 0xf8, 0x11, 0xaa, 0xbf, 0xc9, 0x04, 0x6b, 0x79, 0x3b, 0xde, 0x6e, 0xf3, 0xde, 0x9d, 0x70, + 0x89, 0xd5, 0xf0, 0x17, 0x7c, 0x64, 0x71, 0x01, 0xa0, 0xab, 0x96, 0x3b, 0x82, 0x77, 0x19, 0x68, + 0x13, 0x01, 0x83, 0x74, 0x64, 0xb8, 0x14, 0xf8, 0x19, 0xda, 0xd0, 0x71, 0x02, 0x2c, 0x1b, 0x82, + 0x63, 0x27, 0x4b, 0xd9, 0xe7, 0xd0, 0x63, 0x07, 0x8b, 0x2a, 0x82, 0xe0, 0x8b, 0x87, 0xae, 0x59, + 0x9d, 0xd7, 0xdc, 0x24, 0x4c, 0xd1, 0xc9, 0x3f, 0x12, 0xc2, 0x4f, 0x50, 0x53, 0x01, 0x03, 0x48, + 0xbb, 0x79, 0xda, 0xad, 0xff, 0x2c, 0xdf, 0xf5, 0xb0, 0xb8, 0x8e, 0x30, 0xbf, 0x8e, 0x8a, 0xe7, + 0xa9, 0xe4, 0xe2, 0xa0, 0x7e, 0x76, 0xb1, 0x5d, 0x8b, 0x50, 0x81, 0xc9, 0x2b, 0xc1, 0x47, 0x0f, + 0xdd, 0xf8, 0x8d, 0xd5, 0x23, 0xca, 0x87, 0xc0, 0xfe, 0xae, 0xe1, 0x9b, 0x68, 0x73, 0xe2, 0x84, + 0xba, 0xa0, 0x94, 0x75, 0xdc, 0x88, 0x9a, 0x65, 0xed, 0x50, 0xa9, 0xe0, 0xab, 0x87, 0x2e, 0x5b, + 0x47, 0x27, 0x82, 0x81, 0x9a, 0x28, 0x6e, 0x00, 0xef, 0xa0, 0x66, 0x56, 0xad, 0x94, 0xb5, 0xd1, + 0x88, 0x16, 0x4b, 0xb8, 0x8d, 0x36, 0x52, 0xaa, 0x06, 0x60, 0x3a, 0xcc, 0x91, 0x56, 0x6b, 0xfc, + 0x10, 0xad, 0x33, 0x18, 0x49, 0xcd, 0x4d, 0xeb, 0xff, 0xd5, 0x12, 0x2a, 0xfb, 0xf1, 0x03, 0xb4, + 0xa6, 0x13, 0xaa, 0x40, 0xb7, 0xea, 0xab, 0x21, 0x5d, 0x7b, 0xf0, 0xd9, 0x73, 0xa3, 0x56, 0x8d, + 0x61, 0x19, 0x30, 0xde, 0x42, 0x8d, 0xc2, 0x5a, 0x97, 0x33, 0x77, 0x94, 0xb9, 0xd7, 0x5b, 0xe8, + 0x92, 0xdb, 0x34, 0x3c, 0x1e, 0x40, 0x99, 0xd0, 0x66, 0x51, 0x7c, 0x69, 0x6b, 0xf8, 0x31, 0x42, + 0x65, 0x62, 0x74, 0xb8, 0xea, 0x99, 0x16, 0x20, 0xc1, 0x87, 0x32, 0xe3, 0x63, 0x30, 0xaf, 0x64, + 0x16, 0x27, 0xa0, 0x30, 0x46, 0x75, 0xca, 0x58, 0x19, 0xae, 0xfd, 0xc7, 0x0c, 0xad, 0x8f, 0x8b, + 0xed, 0x3f, 0xcf, 0x16, 0xc9, 0x55, 0xbe, 0x5f, 0x6c, 0xdf, 0xee, 0x73, 0x93, 0x64, 0xbd, 0x30, + 0x96, 0x29, 0x71, 0xef, 0x42, 0xf1, 0xd9, 0xd3, 0x6c, 0x40, 0xcc, 0xfb, 0x11, 0x68, 0x0b, 0x88, + 0x4a, 0xea, 0x03, 0x7e, 0x36, 0xf5, 0xbd, 0xf3, 0xa9, 0xef, 0xfd, 0x98, 0xfa, 0xde, 0xa7, 0x99, + 0x5f, 0x3b, 0x9f, 0xf9, 0xb5, 0x6f, 0x33, 0xbf, 0x76, 0xfa, 0x62, 0x81, 0xab, 0x53, 0xce, 0xdc, + 0x73, 0xda, 0xd3, 0xa4, 0x9a, 0xc0, 0xbd, 0x58, 0x2a, 0x58, 0x5c, 0x26, 0x94, 0x0b, 0x92, 0xca, + 0x7c, 0xdc, 0xf4, 0xc2, 0x73, 0x63, 0x85, 0x7b, 0x6b, 0xf6, 0x8d, 0xb9, 0xff, 0x33, 0x00, 0x00, + 0xff, 0xff, 0x75, 0x1e, 0x65, 0x98, 0x0f, 0x05, 0x00, 0x00, } func (m *EventInsuranceFundUpdate) Marshal() (dAtA []byte, err error) { @@ -459,6 +568,48 @@ func (m *EventWithdrawRedemption) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *EventWithdrawRedemptionFailed) 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 *EventWithdrawRedemptionFailed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventWithdrawRedemptionFailed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.WithdrawErr) > 0 { + i -= len(m.WithdrawErr) + copy(dAtA[i:], m.WithdrawErr) + i = encodeVarintEvents(dAtA, i, uint64(len(m.WithdrawErr))) + i-- + dAtA[i] = 0x12 + } + if m.Schedule != nil { + { + size, err := m.Schedule.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EventUnderwrite) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -563,6 +714,46 @@ func (m *EventInsuranceWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *EventSetVoucher) 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 *EventSetVoucher) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventSetVoucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Addr) > 0 { + i -= len(m.Addr) + copy(dAtA[i:], m.Addr) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Addr))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintEvents(dAtA []byte, offset int, v uint64) int { offset -= sovEvents(v) base := offset @@ -615,6 +806,23 @@ func (m *EventWithdrawRedemption) Size() (n int) { return n } +func (m *EventWithdrawRedemptionFailed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Schedule != nil { + l = m.Schedule.Size() + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.WithdrawErr) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + func (m *EventUnderwrite) Size() (n int) { if m == nil { return 0 @@ -655,6 +863,21 @@ func (m *EventInsuranceWithdraw) Size() (n int) { return n } +func (m *EventSetVoucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Addr) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = m.Voucher.Size() + n += 1 + l + sovEvents(uint64(l)) + return n +} + func sovEvents(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -952,6 +1175,124 @@ func (m *EventWithdrawRedemption) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventWithdrawRedemptionFailed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventWithdrawRedemptionFailed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventWithdrawRedemptionFailed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Schedule", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Schedule == nil { + m.Schedule = &RedemptionSchedule{} + } + if err := m.Schedule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawErr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + 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 ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WithdrawErr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *EventUnderwrite) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -1279,6 +1620,121 @@ func (m *EventInsuranceWithdraw) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventSetVoucher) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventSetVoucher: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSetVoucher: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + 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 ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEvents(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/insurance/types/genesis.pb.go b/chain/insurance/types/genesis.pb.go index 2bd30a00..abc1a421 100644 --- a/chain/insurance/types/genesis.pb.go +++ b/chain/insurance/types/genesis.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -38,6 +39,14 @@ type GenesisState struct { // next_redemption_schedule_id describes next redemption schedule id to be // used for next schedule incremented by 1 per redemption request NextRedemptionScheduleId uint64 `protobuf:"varint,5,opt,name=next_redemption_schedule_id,json=nextRedemptionScheduleId,proto3" json:"next_redemption_schedule_id,omitempty"` + // failed_redemption_schedules describes redemptions that failed during + // settlement and are preserved for manual resolution + FailedRedemptionSchedules []FailedRedemptionSchedule `protobuf:"bytes,6,rep,name=failed_redemption_schedules,json=failedRedemptionSchedules,proto3" json:"failed_redemption_schedules"` + // next_failed_redemption_schedule_id describes the next id for failed + // redemption schedules, incremented by 1 per failed settlement + NextFailedRedemptionScheduleId uint64 `protobuf:"varint,7,opt,name=next_failed_redemption_schedule_id,json=nextFailedRedemptionScheduleId,proto3" json:"next_failed_redemption_schedule_id,omitempty"` + // outstanding vouchers (failed redemption deliveries) + Vouchers []types.AddressVoucher `protobuf:"bytes,8,rep,name=vouchers,proto3" json:"vouchers"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -108,6 +117,27 @@ func (m *GenesisState) GetNextRedemptionScheduleId() uint64 { return 0 } +func (m *GenesisState) GetFailedRedemptionSchedules() []FailedRedemptionSchedule { + if m != nil { + return m.FailedRedemptionSchedules + } + return nil +} + +func (m *GenesisState) GetNextFailedRedemptionScheduleId() uint64 { + if m != nil { + return m.NextFailedRedemptionScheduleId + } + return 0 +} + +func (m *GenesisState) GetVouchers() []types.AddressVoucher { + if m != nil { + return m.Vouchers + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.insurance.v1beta1.GenesisState") } @@ -117,30 +147,36 @@ func init() { } var fileDescriptor_293324fee7d3f3b1 = []byte{ - // 360 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xc1, 0x4a, 0xeb, 0x40, - 0x14, 0x86, 0x93, 0xdb, 0xde, 0x2e, 0xd2, 0xcb, 0x55, 0x52, 0x17, 0xa1, 0x85, 0x58, 0x74, 0x53, - 0x95, 0x66, 0x68, 0x5d, 0xbb, 0xb0, 0x88, 0x12, 0x10, 0x94, 0x76, 0xa5, 0x9b, 0x30, 0xc9, 0x9c, - 0x26, 0x23, 0x66, 0x26, 0x64, 0x26, 0x45, 0xb7, 0x3e, 0x81, 0x8f, 0xd5, 0x65, 0x97, 0xae, 0x44, - 0xda, 0x17, 0x91, 0x4c, 0xd3, 0x58, 0xa8, 0x64, 0x77, 0x72, 0xfe, 0xef, 0xff, 0xcf, 0x39, 0x64, - 0x8c, 0x13, 0xca, 0x9e, 0x20, 0x90, 0x74, 0x06, 0x88, 0x32, 0x91, 0xa5, 0x98, 0x05, 0x80, 0x66, - 0x03, 0x1f, 0x24, 0x1e, 0xa0, 0x10, 0x18, 0x08, 0x2a, 0x9c, 0x24, 0xe5, 0x92, 0x9b, 0x9d, 0x12, - 0x75, 0x4a, 0xd4, 0x29, 0xd0, 0xf6, 0x59, 0x55, 0xce, 0x0f, 0xae, 0x92, 0xda, 0x07, 0x21, 0x0f, - 0xb9, 0x2a, 0x51, 0x5e, 0xad, 0xbb, 0x47, 0x6f, 0x35, 0xe3, 0xdf, 0xcd, 0x7a, 0xe2, 0x44, 0x62, - 0x09, 0xe6, 0xa5, 0xd1, 0x48, 0x70, 0x8a, 0x63, 0x61, 0xe9, 0x5d, 0xbd, 0xd7, 0x1c, 0x1e, 0x3b, - 0x15, 0x1b, 0x38, 0xf7, 0x0a, 0x1d, 0xd5, 0xe7, 0x9f, 0x87, 0xda, 0xb8, 0x30, 0x9a, 0x0f, 0xc6, - 0x5e, 0x49, 0x7a, 0xd3, 0x8c, 0x11, 0x61, 0xfd, 0xe9, 0xd6, 0x7a, 0xcd, 0xe1, 0x69, 0x65, 0x96, - 0xbb, 0xe9, 0x5c, 0x67, 0x8c, 0x14, 0x91, 0xff, 0xe9, 0x76, 0x53, 0x98, 0x53, 0xa3, 0x95, 0x02, - 0x81, 0x38, 0x91, 0x94, 0x33, 0x4f, 0x04, 0x11, 0x90, 0xec, 0x19, 0xac, 0x9a, 0x8a, 0x47, 0x95, - 0xf1, 0xe3, 0xd2, 0x37, 0x29, 0x6c, 0xc5, 0x0c, 0x33, 0xdd, 0x51, 0xcc, 0xbe, 0xd1, 0x62, 0xf0, - 0x22, 0x3d, 0x11, 0xe1, 0x14, 0x3c, 0x02, 0x8c, 0xc7, 0x1e, 0x25, 0x56, 0xbd, 0xab, 0xf7, 0xea, - 0xe3, 0xfd, 0x5c, 0x9a, 0xe4, 0xca, 0x55, 0x2e, 0xb8, 0xc4, 0xbc, 0x30, 0x3a, 0x0a, 0xff, 0x65, - 0xb7, 0xdc, 0xf6, 0x57, 0xd9, 0xac, 0x1c, 0xd9, 0xdd, 0xc2, 0x25, 0x23, 0x3a, 0x5f, 0xda, 0xfa, - 0x62, 0x69, 0xeb, 0x5f, 0x4b, 0x5b, 0x7f, 0x5f, 0xd9, 0xda, 0x62, 0x65, 0x6b, 0x1f, 0x2b, 0x5b, - 0x7b, 0xbc, 0x0b, 0xa9, 0x8c, 0x32, 0xdf, 0x09, 0x78, 0x8c, 0xdc, 0xcd, 0x71, 0xb7, 0xd8, 0x17, - 0xa8, 0x3c, 0xb5, 0x1f, 0xf0, 0x14, 0xb6, 0x3f, 0x23, 0x4c, 0x19, 0x8a, 0x79, 0x9e, 0x2d, 0xb6, - 0xde, 0x85, 0x7c, 0x4d, 0x40, 0xf8, 0x0d, 0xf5, 0xdb, 0xcf, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, - 0x41, 0xfa, 0xec, 0x9b, 0x83, 0x02, 0x00, 0x00, + // 458 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x53, 0x4d, 0x6f, 0x13, 0x31, + 0x10, 0xcd, 0xd2, 0x34, 0x54, 0x2e, 0x02, 0xe4, 0x72, 0x58, 0x88, 0xb4, 0x44, 0xe5, 0x12, 0x3e, + 0xba, 0x56, 0x8a, 0x38, 0x72, 0x68, 0x85, 0x8a, 0x16, 0x21, 0x40, 0x89, 0x84, 0x04, 0x97, 0x95, + 0xb3, 0x9e, 0x64, 0x8d, 0xba, 0x76, 0x64, 0x7b, 0x57, 0x20, 0xfe, 0x04, 0x77, 0xfe, 0x50, 0x8f, + 0x3d, 0x72, 0x42, 0x28, 0xf9, 0x23, 0xc8, 0xce, 0xc6, 0x5d, 0xa9, 0xcd, 0xde, 0xc6, 0x33, 0xef, + 0xbd, 0x79, 0x4f, 0x1a, 0xa3, 0xa7, 0x5c, 0x7c, 0x83, 0xcc, 0xf0, 0x0a, 0x08, 0x17, 0xba, 0x54, + 0x54, 0x64, 0x40, 0xaa, 0xd1, 0x14, 0x0c, 0x1d, 0x91, 0x39, 0x08, 0xd0, 0x5c, 0xc7, 0x0b, 0x25, + 0x8d, 0xc4, 0x7d, 0x0f, 0x8d, 0x3d, 0x34, 0xae, 0xa1, 0x8f, 0x9e, 0xb7, 0xe9, 0x5c, 0xc1, 0x9d, + 0x52, 0x13, 0x9c, 0xc9, 0xa2, 0x90, 0x82, 0x54, 0xb2, 0xcc, 0x72, 0x50, 0x9a, 0x54, 0x23, 0x5f, + 0xd7, 0xe0, 0x07, 0x73, 0x39, 0x97, 0xae, 0x24, 0xb6, 0x5a, 0x77, 0x0f, 0x7f, 0xef, 0xa2, 0x3b, + 0x6f, 0xd7, 0xf6, 0x26, 0x86, 0x1a, 0xc0, 0x27, 0xa8, 0xb7, 0xa0, 0x8a, 0x16, 0x3a, 0x0c, 0x06, + 0xc1, 0x70, 0xff, 0xf8, 0x49, 0xdc, 0x62, 0x37, 0xfe, 0xe4, 0xa0, 0xa7, 0xdd, 0x8b, 0xbf, 0x8f, + 0x3b, 0xe3, 0x9a, 0x88, 0xbf, 0xa0, 0x7b, 0x1e, 0x99, 0xce, 0x4a, 0xc1, 0x74, 0x78, 0x6b, 0xb0, + 0x33, 0xdc, 0x3f, 0x7e, 0xd6, 0xaa, 0x95, 0x6c, 0x3a, 0x67, 0xa5, 0x60, 0xb5, 0xe4, 0x5d, 0xde, + 0x6c, 0x6a, 0x3c, 0x43, 0x07, 0x0a, 0x18, 0x14, 0x0b, 0xc3, 0xa5, 0x48, 0x75, 0x96, 0x03, 0x2b, + 0xcf, 0x21, 0xdc, 0x71, 0xf2, 0xa4, 0x55, 0x7e, 0xec, 0x79, 0x93, 0x9a, 0x56, 0xef, 0xc0, 0xea, + 0xda, 0x04, 0x1f, 0xa1, 0x03, 0x01, 0xdf, 0x4d, 0xaa, 0x73, 0xaa, 0x20, 0x65, 0x20, 0x64, 0x91, + 0x72, 0x16, 0x76, 0x07, 0xc1, 0xb0, 0x3b, 0xbe, 0x6f, 0x47, 0x13, 0x3b, 0x79, 0x63, 0x07, 0x09, + 0xc3, 0xaf, 0x51, 0xdf, 0xc1, 0x6f, 0xf0, 0x66, 0x69, 0xbb, 0x8e, 0x16, 0x5a, 0xc8, 0x75, 0x17, + 0x09, 0xc3, 0x3f, 0x51, 0x7f, 0x46, 0xf9, 0x39, 0xb0, 0x9b, 0x04, 0x74, 0xd8, 0x73, 0xe9, 0x5e, + 0xb5, 0xa6, 0x3b, 0x73, 0xfc, 0xad, 0x19, 0x1f, 0xce, 0xb6, 0xcc, 0x35, 0x7e, 0x87, 0x0e, 0x9d, + 0xf7, 0xed, 0x0e, 0x6c, 0x84, 0xdb, 0x2e, 0x42, 0x64, 0x91, 0xdb, 0x56, 0x25, 0x0c, 0x7f, 0x40, + 0x7b, 0x9b, 0xab, 0x0b, 0xf7, 0x9c, 0xeb, 0x17, 0x0d, 0xd7, 0xeb, 0x1b, 0x8d, 0xfd, 0x5d, 0x56, + 0xa3, 0xf8, 0x84, 0x31, 0x05, 0x5a, 0x7f, 0x5e, 0xb7, 0x6a, 0xb3, 0x5e, 0xe3, 0x94, 0x5f, 0x2c, + 0xa3, 0xe0, 0x72, 0x19, 0x05, 0xff, 0x96, 0x51, 0xf0, 0x6b, 0x15, 0x75, 0x2e, 0x57, 0x51, 0xe7, + 0xcf, 0x2a, 0xea, 0x7c, 0xfd, 0x38, 0xe7, 0x26, 0x2f, 0xa7, 0x56, 0x93, 0x24, 0x9b, 0x0d, 0xef, + 0xe9, 0x54, 0x13, 0xbf, 0xef, 0x28, 0x93, 0x0a, 0x9a, 0xcf, 0x9c, 0x72, 0x41, 0x0a, 0xe9, 0x62, + 0x37, 0x7e, 0x97, 0xf9, 0xb1, 0x00, 0x3d, 0xed, 0xb9, 0xff, 0xf0, 0xf2, 0x7f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xbb, 0xd3, 0xa4, 0xb4, 0xc9, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -163,6 +199,39 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + } + if m.NextFailedRedemptionScheduleId != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.NextFailedRedemptionScheduleId)) + i-- + dAtA[i] = 0x38 + } + if len(m.FailedRedemptionSchedules) > 0 { + for iNdEx := len(m.FailedRedemptionSchedules) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.FailedRedemptionSchedules[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } if m.NextRedemptionScheduleId != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.NextRedemptionScheduleId)) i-- @@ -251,6 +320,21 @@ func (m *GenesisState) Size() (n int) { if m.NextRedemptionScheduleId != 0 { n += 1 + sovGenesis(uint64(m.NextRedemptionScheduleId)) } + if len(m.FailedRedemptionSchedules) > 0 { + for _, e := range m.FailedRedemptionSchedules { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + if m.NextFailedRedemptionScheduleId != 0 { + n += 1 + sovGenesis(uint64(m.NextFailedRedemptionScheduleId)) + } + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } return n } @@ -428,6 +512,93 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedRedemptionSchedules", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FailedRedemptionSchedules = append(m.FailedRedemptionSchedules, FailedRedemptionSchedule{}) + if err := m.FailedRedemptionSchedules[len(m.FailedRedemptionSchedules)-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 NextFailedRedemptionScheduleId", wireType) + } + m.NextFailedRedemptionScheduleId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NextFailedRedemptionScheduleId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Vouchers = append(m.Vouchers, types.AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/insurance/types/insurance.pb.go b/chain/insurance/types/insurance.pb.go index b278e24e..54772ac5 100644 --- a/chain/insurance/types/insurance.pb.go +++ b/chain/insurance/types/insurance.pb.go @@ -6,6 +6,7 @@ package types import ( cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" + _ "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" types "github.com/InjectiveLabs/sdk-go/chain/oracle/types" types1 "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" @@ -286,10 +287,74 @@ func (m *RedemptionSchedule) GetRedemptionAmount() types1.Coin { return types1.Coin{} } +type FailedRedemptionSchedule struct { + // id of the failed redemption + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // the original redemption schedule that failed to execute + Schedule RedemptionSchedule `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule"` + // the error message from the failed withdrawal attempt + Err string `protobuf:"bytes,3,opt,name=err,proto3" json:"err,omitempty"` +} + +func (m *FailedRedemptionSchedule) Reset() { *m = FailedRedemptionSchedule{} } +func (m *FailedRedemptionSchedule) String() string { return proto.CompactTextString(m) } +func (*FailedRedemptionSchedule) ProtoMessage() {} +func (*FailedRedemptionSchedule) Descriptor() ([]byte, []int) { + return fileDescriptor_dbc47a7b76393948, []int{3} +} +func (m *FailedRedemptionSchedule) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FailedRedemptionSchedule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FailedRedemptionSchedule.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FailedRedemptionSchedule) XXX_Merge(src proto.Message) { + xxx_messageInfo_FailedRedemptionSchedule.Merge(m, src) +} +func (m *FailedRedemptionSchedule) XXX_Size() int { + return m.Size() +} +func (m *FailedRedemptionSchedule) XXX_DiscardUnknown() { + xxx_messageInfo_FailedRedemptionSchedule.DiscardUnknown(m) +} + +var xxx_messageInfo_FailedRedemptionSchedule proto.InternalMessageInfo + +func (m *FailedRedemptionSchedule) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *FailedRedemptionSchedule) GetSchedule() RedemptionSchedule { + if m != nil { + return m.Schedule + } + return RedemptionSchedule{} +} + +func (m *FailedRedemptionSchedule) GetErr() string { + if m != nil { + return m.Err + } + return "" +} + func init() { proto.RegisterType((*Params)(nil), "injective.insurance.v1beta1.Params") proto.RegisterType((*InsuranceFund)(nil), "injective.insurance.v1beta1.InsuranceFund") proto.RegisterType((*RedemptionSchedule)(nil), "injective.insurance.v1beta1.RedemptionSchedule") + proto.RegisterType((*FailedRedemptionSchedule)(nil), "injective.insurance.v1beta1.FailedRedemptionSchedule") } func init() { @@ -297,55 +362,59 @@ func init() { } var fileDescriptor_dbc47a7b76393948 = []byte{ - // 759 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0x41, 0x6f, 0xd3, 0x48, - 0x14, 0x8e, 0xd3, 0x6c, 0xda, 0x4c, 0xda, 0xaa, 0x1d, 0xed, 0x6e, 0xdd, 0x54, 0xeb, 0xa4, 0xd9, - 0xad, 0x94, 0xdd, 0x05, 0x9b, 0x16, 0x24, 0xa4, 0x82, 0x90, 0x08, 0x05, 0x29, 0x52, 0x45, 0x8b, - 0x9b, 0x13, 0x17, 0x6b, 0x6c, 0x4f, 0x93, 0x21, 0xb6, 0xc7, 0xd8, 0xe3, 0x8a, 0xdc, 0x39, 0x71, - 0xea, 0x11, 0x71, 0xe2, 0x27, 0xd0, 0x7f, 0xd1, 0x63, 0x6f, 0x20, 0x0e, 0x05, 0xb5, 0x07, 0x38, - 0x70, 0xe2, 0x17, 0xa0, 0x19, 0x8f, 0xed, 0x08, 0x04, 0xed, 0xc5, 0xf2, 0x7b, 0xef, 0x7b, 0x6f, - 0xde, 0xfb, 0xde, 0x37, 0x03, 0xfe, 0x27, 0xc1, 0x13, 0xec, 0x30, 0x72, 0x80, 0x0d, 0x12, 0xc4, - 0x49, 0x84, 0x02, 0x07, 0x1b, 0x07, 0xeb, 0x36, 0x66, 0x68, 0xbd, 0xf0, 0xe8, 0x61, 0x44, 0x19, - 0x85, 0x2b, 0x39, 0x58, 0x2f, 0x42, 0x12, 0xdc, 0xf8, 0x7d, 0x40, 0x07, 0x54, 0xe0, 0x0c, 0xfe, - 0x97, 0xa6, 0x34, 0xb4, 0x01, 0xa5, 0x03, 0x0f, 0x1b, 0xc2, 0xb2, 0x93, 0x7d, 0xc3, 0x4d, 0x22, - 0xc4, 0x08, 0x0d, 0x64, 0xbc, 0xf9, 0x7d, 0x9c, 0x11, 0x1f, 0xc7, 0x0c, 0xf9, 0x61, 0x56, 0xc0, - 0xa1, 0xb1, 0x4f, 0x63, 0xc3, 0x46, 0x71, 0xd1, 0x98, 0x43, 0x49, 0x56, 0x60, 0xad, 0x18, 0x80, - 0x46, 0xc8, 0xf1, 0x0a, 0x50, 0x6a, 0x4a, 0xd8, 0x22, 0xf2, 0x49, 0x40, 0x0d, 0xf1, 0x4d, 0x5d, - 0xed, 0xb7, 0x0a, 0xa8, 0xee, 0xa2, 0x08, 0xf9, 0x31, 0x3c, 0x52, 0xc0, 0xbf, 0x2e, 0xde, 0x47, - 0x89, 0xc7, 0xac, 0x08, 0xbb, 0xd8, 0x0f, 0x79, 0x8b, 0x56, 0x40, 0x19, 0x71, 0xb0, 0x15, 0xe2, - 0x88, 0x50, 0xd7, 0xca, 0x3a, 0x57, 0x95, 0x96, 0xd2, 0xa9, 0x6f, 0x2c, 0xeb, 0x69, 0xeb, 0x7a, - 0xd6, 0xba, 0xbe, 0x25, 0x01, 0xdd, 0xdb, 0xc7, 0xa7, 0xcd, 0xd2, 0xd7, 0xd3, 0xe6, 0xb5, 0x31, - 0xf2, 0xbd, 0xcd, 0xf6, 0xa5, 0x2b, 0xb7, 0x5f, 0x7e, 0x68, 0x2a, 0xe6, 0x9a, 0xc4, 0x9b, 0x39, - 0xfc, 0xa1, 0x40, 0xef, 0x0a, 0x70, 0x76, 0xc8, 0xe6, 0xf2, 0xe7, 0xd7, 0x4d, 0xe5, 0xc5, 0xa7, - 0x37, 0xff, 0x2d, 0x14, 0x8b, 0x4b, 0xc7, 0x69, 0x7f, 0xa9, 0x80, 0xb9, 0x5e, 0xe6, 0x7c, 0x90, - 0x04, 0x2e, 0xfc, 0x1b, 0xcc, 0xb9, 0x38, 0xa4, 0x31, 0x61, 0x96, 0x8b, 0x03, 0xea, 0x8b, 0x19, - 0x6a, 0xe6, 0xac, 0x74, 0x6e, 0x71, 0x1f, 0xbc, 0x05, 0x1a, 0x79, 0x29, 0x2b, 0xa4, 0xd4, 0xb3, - 0x18, 0x1d, 0xe1, 0x40, 0x66, 0x94, 0x45, 0xc6, 0x52, 0x8e, 0xd8, 0xa5, 0xd4, 0xeb, 0xf3, 0x78, - 0x9a, 0xfc, 0x4a, 0x01, 0xab, 0x17, 0x53, 0x37, 0x75, 0x11, 0x75, 0x37, 0x24, 0x75, 0x9d, 0x94, - 0xba, 0x4b, 0x52, 0xa6, 0x45, 0xbf, 0xe4, 0x0a, 0xde, 0x04, 0xd3, 0x36, 0xf2, 0x78, 0xd7, 0x6a, - 0x85, 0x8f, 0xd1, 0xfd, 0x8b, 0x1f, 0xf3, 0xfe, 0xb4, 0xf9, 0x47, 0xaa, 0xae, 0xd8, 0x1d, 0xe9, - 0x84, 0x1a, 0x3e, 0x62, 0x43, 0xbd, 0x17, 0x30, 0x33, 0x43, 0xc3, 0x3b, 0xa0, 0xce, 0x28, 0x43, - 0x9e, 0x15, 0x0f, 0x51, 0x84, 0xd5, 0xdf, 0x2e, 0x93, 0x0c, 0x44, 0xc6, 0x1e, 0x4f, 0x80, 0x2b, - 0xa0, 0xe6, 0xa3, 0x68, 0x84, 0x99, 0x45, 0x5c, 0xb5, 0x2a, 0x18, 0x9c, 0x49, 0x1d, 0x3d, 0xb1, - 0x14, 0x19, 0x64, 0xc4, 0x19, 0xe1, 0x48, 0x9d, 0x4e, 0x97, 0x92, 0x3a, 0xfb, 0xc2, 0x07, 0x9b, - 0xa0, 0x9e, 0x0a, 0xd9, 0xe2, 0x37, 0x40, 0x9d, 0x11, 0x10, 0x90, 0xba, 0xba, 0x28, 0xc6, 0x70, - 0x15, 0xcc, 0x4a, 0xc0, 0xd3, 0x84, 0x32, 0xac, 0xd6, 0x04, 0x42, 0x26, 0x3d, 0xe2, 0x2e, 0x78, - 0x3f, 0xaf, 0xc1, 0xc6, 0x21, 0x56, 0x41, 0x4b, 0xe9, 0xcc, 0x6f, 0xfc, 0xa3, 0x17, 0xb7, 0x59, - 0x5e, 0x15, 0x79, 0x73, 0xf4, 0x1d, 0x61, 0xf6, 0xc7, 0x21, 0xce, 0x4e, 0xe2, 0xff, 0xf0, 0x4f, - 0x50, 0xc5, 0xcf, 0x42, 0x12, 0x8d, 0xd5, 0x7a, 0x4b, 0xe9, 0x4c, 0x99, 0xd2, 0x6a, 0x1f, 0x95, - 0x01, 0x2c, 0xc4, 0xba, 0xe7, 0x0c, 0xb1, 0x9b, 0x78, 0x18, 0xce, 0x83, 0x32, 0x71, 0x85, 0xd0, - 0x2a, 0x66, 0x99, 0xb8, 0xb0, 0x01, 0xf2, 0xd1, 0xa5, 0x98, 0x0a, 0x2a, 0x1a, 0x60, 0x86, 0xaf, - 0x10, 0xfb, 0x38, 0x12, 0x1a, 0xa9, 0x99, 0xb9, 0x0d, 0x9f, 0x2b, 0x60, 0xd9, 0xf1, 0x10, 0xf1, - 0x91, 0xed, 0xe1, 0xc9, 0x4b, 0xc4, 0x9f, 0x0a, 0xb1, 0xcf, 0xfa, 0x46, 0xe3, 0x07, 0x45, 0xf5, - 0xb3, 0x77, 0xa4, 0x7b, 0x45, 0x4a, 0xaa, 0x95, 0x4a, 0xea, 0xa7, 0xa5, 0xda, 0x87, 0x5c, 0x4a, - 0x4b, 0x79, 0xbc, 0x18, 0x89, 0xd7, 0x82, 0xdb, 0x60, 0x71, 0x22, 0x01, 0xf9, 0x34, 0x09, 0x98, - 0x10, 0x04, 0xd7, 0x73, 0xaa, 0x04, 0x9d, 0xaf, 0x28, 0x67, 0xf1, 0x1e, 0x25, 0x41, 0xb7, 0xc2, - 0x0f, 0x37, 0x17, 0x8a, 0xcc, 0xbb, 0x22, 0xb1, 0x4b, 0x8e, 0xcf, 0x34, 0xe5, 0xe4, 0x4c, 0x53, - 0x3e, 0x9e, 0x69, 0xca, 0xe1, 0xb9, 0x56, 0x3a, 0x39, 0xd7, 0x4a, 0xef, 0xce, 0xb5, 0xd2, 0xe3, - 0x9d, 0x01, 0x61, 0xc3, 0xc4, 0xd6, 0x1d, 0xea, 0x1b, 0xbd, 0x6c, 0x43, 0xdb, 0xc8, 0x8e, 0x8d, - 0x7c, 0x5f, 0x57, 0x1d, 0x1a, 0xe1, 0x49, 0x73, 0x88, 0x48, 0x60, 0xf8, 0x94, 0xd3, 0x1e, 0x4f, - 0xbc, 0xe3, 0x7c, 0xdb, 0xb1, 0x5d, 0x15, 0x9c, 0x5c, 0xff, 0x16, 0x00, 0x00, 0xff, 0xff, 0x4b, - 0x5b, 0xe9, 0xd1, 0xeb, 0x05, 0x00, 0x00, + // 819 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4f, 0x8f, 0xdb, 0x44, + 0x14, 0x5f, 0xef, 0x86, 0x34, 0x99, 0xb4, 0xd5, 0x76, 0x04, 0xd4, 0x9b, 0x0a, 0x27, 0x0d, 0x54, + 0x0a, 0xff, 0x6c, 0x36, 0x20, 0x21, 0x15, 0x84, 0x44, 0x28, 0x95, 0x22, 0x55, 0x74, 0xeb, 0xe6, + 0xc4, 0xc5, 0x1a, 0xdb, 0xd3, 0x64, 0x88, 0xc7, 0xcf, 0x8c, 0xc7, 0x11, 0xb9, 0x73, 0xe2, 0x42, + 0x8f, 0x88, 0x13, 0x1f, 0x81, 0x7e, 0x8b, 0x1e, 0x7b, 0x03, 0x71, 0x58, 0xd0, 0xee, 0x01, 0x0e, + 0x9c, 0xf8, 0x04, 0x68, 0xc6, 0x63, 0x3b, 0xa2, 0xa2, 0x9b, 0x4b, 0x34, 0xef, 0xbd, 0xdf, 0x7b, + 0x6f, 0xde, 0xef, 0xfd, 0xc6, 0x41, 0x6f, 0xb3, 0xf4, 0x2b, 0x1a, 0x49, 0xb6, 0xa6, 0x1e, 0x4b, + 0xf3, 0x42, 0x90, 0x34, 0xa2, 0xde, 0xfa, 0x38, 0xa4, 0x92, 0x1c, 0x37, 0x1e, 0x37, 0x13, 0x20, + 0x01, 0xdf, 0xa8, 0xc1, 0x6e, 0x13, 0x32, 0xe0, 0xfe, 0xcb, 0x0b, 0x58, 0x80, 0xc6, 0x79, 0xea, + 0x54, 0xa6, 0xf4, 0x9d, 0x05, 0xc0, 0x22, 0xa1, 0x9e, 0xb6, 0xc2, 0xe2, 0x91, 0x17, 0x17, 0x82, + 0x48, 0x06, 0xa9, 0x89, 0x0f, 0xfe, 0x1b, 0x97, 0x8c, 0xd3, 0x5c, 0x12, 0x9e, 0x55, 0x05, 0x22, + 0xc8, 0x39, 0xe4, 0x5e, 0x48, 0xf2, 0xe6, 0x62, 0x11, 0xb0, 0xaa, 0xc0, 0xad, 0x66, 0x00, 0x10, + 0x24, 0x4a, 0x1a, 0x50, 0x69, 0x1a, 0xd8, 0xd6, 0x9c, 0x11, 0x70, 0x0e, 0xa9, 0xb7, 0x86, 0x22, + 0x5a, 0x52, 0x91, 0x7b, 0xeb, 0xe3, 0xfa, 0x6c, 0xc0, 0xd7, 0x08, 0x67, 0x29, 0x78, 0xfa, 0xb7, + 0x74, 0x8d, 0x7e, 0xb1, 0x50, 0xfb, 0x84, 0x08, 0xc2, 0x73, 0xfc, 0xc4, 0x42, 0x6f, 0xc6, 0xf4, + 0x11, 0x29, 0x12, 0x19, 0x08, 0x1a, 0x53, 0x9e, 0xa9, 0x79, 0x82, 0x14, 0x24, 0x8b, 0x68, 0x90, + 0x51, 0xc1, 0x20, 0x0e, 0xaa, 0x31, 0x6d, 0x6b, 0x68, 0x8d, 0x7b, 0x93, 0x23, 0xb7, 0x9c, 0xd3, + 0xad, 0xe6, 0x74, 0xef, 0x18, 0xc0, 0xf4, 0xe3, 0xa7, 0xa7, 0x83, 0xbd, 0x7f, 0x4e, 0x07, 0xef, + 0x6d, 0x08, 0x4f, 0x6e, 0x8f, 0x76, 0xae, 0x3c, 0xfa, 0xe1, 0xf7, 0x81, 0xe5, 0xdf, 0x32, 0x78, + 0xbf, 0x86, 0x7f, 0xa1, 0xd1, 0x27, 0x1a, 0x5c, 0x35, 0xb9, 0x7d, 0xf4, 0xd7, 0x4f, 0x03, 0xeb, + 0xbb, 0x3f, 0x7f, 0x7e, 0xeb, 0xb0, 0xd9, 0x72, 0x39, 0xce, 0xe8, 0xef, 0x16, 0xba, 0x32, 0xab, + 0x9c, 0x77, 0x8b, 0x34, 0xc6, 0xaf, 0xa3, 0x2b, 0x31, 0xcd, 0x20, 0x67, 0x32, 0x88, 0x69, 0x0a, + 0x5c, 0xcf, 0xd0, 0xf5, 0x2f, 0x1b, 0xe7, 0x1d, 0xe5, 0xc3, 0x1f, 0xa1, 0x7e, 0x5d, 0x2a, 0xc8, + 0x00, 0x92, 0x40, 0xc2, 0x8a, 0xa6, 0x26, 0x63, 0x5f, 0x67, 0x5c, 0xaf, 0x11, 0x27, 0x00, 0xc9, + 0x5c, 0xc5, 0xcb, 0xe4, 0x1f, 0x2d, 0x74, 0xf3, 0x62, 0xea, 0x0e, 0x2e, 0xa2, 0xee, 0x03, 0x43, + 0xdd, 0xb8, 0xa4, 0x6e, 0x47, 0xca, 0x1c, 0xf1, 0x42, 0xae, 0xf0, 0x87, 0xe8, 0x52, 0x48, 0x12, + 0x75, 0x6b, 0xbb, 0xa5, 0xc6, 0x98, 0xbe, 0xa6, 0xda, 0xfc, 0x76, 0x3a, 0x78, 0xa5, 0x94, 0x62, + 0x1e, 0xaf, 0x5c, 0x06, 0x1e, 0x27, 0x72, 0xe9, 0xce, 0x52, 0xe9, 0x57, 0x68, 0xfc, 0x09, 0xea, + 0x49, 0x90, 0x24, 0x09, 0xf2, 0x25, 0x11, 0xd4, 0x7e, 0x69, 0x97, 0x64, 0xa4, 0x33, 0x1e, 0xaa, + 0x04, 0x7c, 0x03, 0x75, 0x39, 0x11, 0x2b, 0x2a, 0x03, 0x16, 0xdb, 0x6d, 0xcd, 0x60, 0xa7, 0x74, + 0xcc, 0xf4, 0x52, 0x4c, 0x50, 0xb2, 0x68, 0x45, 0x85, 0x7d, 0xa9, 0x5c, 0x4a, 0xe9, 0x9c, 0x6b, + 0x1f, 0x1e, 0xa0, 0x5e, 0xa9, 0xfa, 0x40, 0x3d, 0x17, 0xbb, 0xa3, 0x21, 0xa8, 0x74, 0x4d, 0x49, + 0x4e, 0xf1, 0x4d, 0x74, 0xd9, 0x00, 0xbe, 0x2e, 0x40, 0x52, 0xbb, 0xab, 0x11, 0x26, 0xe9, 0x81, + 0x72, 0xe1, 0xcf, 0xeb, 0x1a, 0x72, 0x93, 0x51, 0x1b, 0x0d, 0xad, 0xf1, 0xd5, 0xc9, 0x1b, 0x6e, + 0xf3, 0xf4, 0xcd, 0xbb, 0x32, 0xcf, 0xcc, 0xbd, 0xaf, 0xcd, 0xf9, 0x26, 0xa3, 0x55, 0x27, 0x75, + 0xc6, 0xaf, 0xa2, 0x36, 0xfd, 0x26, 0x63, 0x62, 0x63, 0xf7, 0x86, 0xd6, 0xf8, 0xc0, 0x37, 0xd6, + 0xe8, 0xc9, 0x3e, 0xc2, 0x8d, 0x58, 0x1f, 0x46, 0x4b, 0x1a, 0x17, 0x09, 0xc5, 0x57, 0xd1, 0x3e, + 0x8b, 0xb5, 0xd0, 0x5a, 0xfe, 0x3e, 0x8b, 0x71, 0x1f, 0xd5, 0xa3, 0x1b, 0x31, 0x35, 0x54, 0xf4, + 0x51, 0x47, 0xad, 0x90, 0x72, 0x2a, 0xb4, 0x46, 0xba, 0x7e, 0x6d, 0xe3, 0x6f, 0x2d, 0x74, 0x14, + 0x25, 0x84, 0x71, 0x12, 0x26, 0x74, 0xfb, 0x11, 0xa9, 0xef, 0x8a, 0xde, 0x67, 0x6f, 0xd2, 0x7f, + 0x4e, 0x51, 0xf3, 0xea, 0xa3, 0x33, 0x7d, 0xc7, 0x48, 0x6a, 0x58, 0x4a, 0xea, 0x7f, 0x4b, 0x8d, + 0x1e, 0x2b, 0x29, 0x5d, 0xaf, 0xe3, 0xcd, 0x48, 0xaa, 0x16, 0xbe, 0x87, 0xae, 0x6d, 0x25, 0x10, + 0x0e, 0x45, 0x2a, 0xb5, 0x20, 0x94, 0x9e, 0x4b, 0x25, 0xb8, 0x6a, 0x45, 0x35, 0x8b, 0x9f, 0x01, + 0x4b, 0xa7, 0x2d, 0xd5, 0xdc, 0x3f, 0x6c, 0x32, 0x3f, 0xd5, 0x89, 0xa3, 0xef, 0x2d, 0x64, 0xdf, + 0x25, 0x2c, 0xa1, 0xf1, 0x0e, 0xcc, 0x3d, 0x40, 0x9d, 0xdc, 0xc4, 0x34, 0x73, 0xbd, 0x89, 0xe7, + 0xbe, 0xe0, 0xbb, 0xed, 0x3e, 0x5f, 0xd2, 0xdc, 0xa3, 0x2e, 0x83, 0x0f, 0xd1, 0x01, 0x15, 0x15, + 0xd7, 0xea, 0x38, 0x65, 0x4f, 0xcf, 0x1c, 0xeb, 0xd9, 0x99, 0x63, 0xfd, 0x71, 0xe6, 0x58, 0x8f, + 0xcf, 0x9d, 0xbd, 0x67, 0xe7, 0xce, 0xde, 0xaf, 0xe7, 0xce, 0xde, 0x97, 0xf7, 0x17, 0x4c, 0x2e, + 0x8b, 0xd0, 0x8d, 0x80, 0x7b, 0xb3, 0xaa, 0xed, 0x3d, 0x12, 0xe6, 0x5e, 0x7d, 0x89, 0x77, 0x23, + 0x10, 0x74, 0xdb, 0x5c, 0x12, 0x96, 0x7a, 0x1c, 0x54, 0xaf, 0x7c, 0xeb, 0x6f, 0x48, 0xe9, 0x2f, + 0x0f, 0xdb, 0x7a, 0x4b, 0xef, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xf5, 0x9c, 0x1d, 0x72, 0xaa, + 0x06, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -566,6 +635,51 @@ func (m *RedemptionSchedule) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *FailedRedemptionSchedule) 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 *FailedRedemptionSchedule) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FailedRedemptionSchedule) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Err) > 0 { + i -= len(m.Err) + copy(dAtA[i:], m.Err) + i = encodeVarintInsurance(dAtA, i, uint64(len(m.Err))) + i-- + dAtA[i] = 0x1a + } + { + size, err := m.Schedule.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintInsurance(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.Id != 0 { + i = encodeVarintInsurance(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarintInsurance(dAtA []byte, offset int, v uint64) int { offset -= sovInsurance(v) base := offset @@ -657,6 +771,24 @@ func (m *RedemptionSchedule) Size() (n int) { return n } +func (m *FailedRedemptionSchedule) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovInsurance(uint64(m.Id)) + } + l = m.Schedule.Size() + n += 1 + l + sovInsurance(uint64(l)) + l = len(m.Err) + if l > 0 { + n += 1 + l + sovInsurance(uint64(l)) + } + return n +} + func sovInsurance(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1326,6 +1458,140 @@ func (m *RedemptionSchedule) Unmarshal(dAtA []byte) error { } return nil } +func (m *FailedRedemptionSchedule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowInsurance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FailedRedemptionSchedule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FailedRedemptionSchedule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + 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 ErrIntOverflowInsurance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Schedule", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowInsurance + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthInsurance + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthInsurance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Schedule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Err", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowInsurance + } + 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 ErrInvalidLengthInsurance + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthInsurance + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Err = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipInsurance(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthInsurance + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipInsurance(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/insurance/types/query.pb.go b/chain/insurance/types/query.pb.go index 4b79acab..34c5908b 100644 --- a/chain/insurance/types/query.pb.go +++ b/chain/insurance/types/query.pb.go @@ -6,6 +6,8 @@ package types import ( context "context" fmt "fmt" + types1 "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" @@ -575,6 +577,272 @@ func (m *QueryModuleStateResponse) GetState() *GenesisState { return nil } +// QueryFailedRedemptionsRequest is the request type for the +// Query/FailedRedemptions RPC method. +type QueryFailedRedemptionsRequest struct { +} + +func (m *QueryFailedRedemptionsRequest) Reset() { *m = QueryFailedRedemptionsRequest{} } +func (m *QueryFailedRedemptionsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryFailedRedemptionsRequest) ProtoMessage() {} +func (*QueryFailedRedemptionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_74cebfe4cd18bca2, []int{12} +} +func (m *QueryFailedRedemptionsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFailedRedemptionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFailedRedemptionsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFailedRedemptionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFailedRedemptionsRequest.Merge(m, src) +} +func (m *QueryFailedRedemptionsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryFailedRedemptionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFailedRedemptionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFailedRedemptionsRequest proto.InternalMessageInfo + +// QueryFailedRedemptionsResponse is the response type for the +// Query/FailedRedemptions RPC method. +type QueryFailedRedemptionsResponse struct { + Schedules []FailedRedemptionSchedule `protobuf:"bytes,1,rep,name=schedules,proto3" json:"schedules"` +} + +func (m *QueryFailedRedemptionsResponse) Reset() { *m = QueryFailedRedemptionsResponse{} } +func (m *QueryFailedRedemptionsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryFailedRedemptionsResponse) ProtoMessage() {} +func (*QueryFailedRedemptionsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_74cebfe4cd18bca2, []int{13} +} +func (m *QueryFailedRedemptionsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryFailedRedemptionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryFailedRedemptionsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryFailedRedemptionsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryFailedRedemptionsResponse.Merge(m, src) +} +func (m *QueryFailedRedemptionsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryFailedRedemptionsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryFailedRedemptionsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryFailedRedemptionsResponse proto.InternalMessageInfo + +func (m *QueryFailedRedemptionsResponse) GetSchedules() []FailedRedemptionSchedule { + if m != nil { + return m.Schedules + } + return nil +} + +type QueryVouchersRequest struct { + // denom filter; empty string returns all vouchers + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *QueryVouchersRequest) Reset() { *m = QueryVouchersRequest{} } +func (m *QueryVouchersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersRequest) ProtoMessage() {} +func (*QueryVouchersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_74cebfe4cd18bca2, []int{14} +} +func (m *QueryVouchersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVouchersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersRequest.Merge(m, src) +} +func (m *QueryVouchersRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVouchersRequest proto.InternalMessageInfo + +func (m *QueryVouchersRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +type QueryVouchersResponse struct { + // List of outstanding vouchers matching the request filter. + Vouchers []types1.AddressVoucher `protobuf:"bytes,1,rep,name=vouchers,proto3" json:"vouchers"` +} + +func (m *QueryVouchersResponse) Reset() { *m = QueryVouchersResponse{} } +func (m *QueryVouchersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersResponse) ProtoMessage() {} +func (*QueryVouchersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_74cebfe4cd18bca2, []int{15} +} +func (m *QueryVouchersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVouchersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersResponse.Merge(m, src) +} +func (m *QueryVouchersResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVouchersResponse proto.InternalMessageInfo + +func (m *QueryVouchersResponse) GetVouchers() []types1.AddressVoucher { + if m != nil { + return m.Vouchers + } + return nil +} + +type QueryVoucherRequest struct { + // Required. The token denom to look up. + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // Required. The bech32 address of the voucher holder. + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *QueryVoucherRequest) Reset() { *m = QueryVoucherRequest{} } +func (m *QueryVoucherRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherRequest) ProtoMessage() {} +func (*QueryVoucherRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_74cebfe4cd18bca2, []int{16} +} +func (m *QueryVoucherRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVoucherRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherRequest.Merge(m, src) +} +func (m *QueryVoucherRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVoucherRequest proto.InternalMessageInfo + +func (m *QueryVoucherRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *QueryVoucherRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +type QueryVoucherResponse struct { + // The outstanding voucher coin for the requested denom and address. + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,1,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher"` +} + +func (m *QueryVoucherResponse) Reset() { *m = QueryVoucherResponse{} } +func (m *QueryVoucherResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVoucherResponse) ProtoMessage() {} +func (*QueryVoucherResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_74cebfe4cd18bca2, []int{17} +} +func (m *QueryVoucherResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVoucherResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVoucherResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVoucherResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVoucherResponse.Merge(m, src) +} +func (m *QueryVoucherResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVoucherResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVoucherResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVoucherResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*QueryInsuranceParamsRequest)(nil), "injective.insurance.v1beta1.QueryInsuranceParamsRequest") proto.RegisterType((*QueryInsuranceParamsResponse)(nil), "injective.insurance.v1beta1.QueryInsuranceParamsResponse") @@ -588,6 +856,12 @@ func init() { proto.RegisterType((*QueryPendingRedemptionsResponse)(nil), "injective.insurance.v1beta1.QueryPendingRedemptionsResponse") proto.RegisterType((*QueryModuleStateRequest)(nil), "injective.insurance.v1beta1.QueryModuleStateRequest") proto.RegisterType((*QueryModuleStateResponse)(nil), "injective.insurance.v1beta1.QueryModuleStateResponse") + proto.RegisterType((*QueryFailedRedemptionsRequest)(nil), "injective.insurance.v1beta1.QueryFailedRedemptionsRequest") + proto.RegisterType((*QueryFailedRedemptionsResponse)(nil), "injective.insurance.v1beta1.QueryFailedRedemptionsResponse") + proto.RegisterType((*QueryVouchersRequest)(nil), "injective.insurance.v1beta1.QueryVouchersRequest") + proto.RegisterType((*QueryVouchersResponse)(nil), "injective.insurance.v1beta1.QueryVouchersResponse") + proto.RegisterType((*QueryVoucherRequest)(nil), "injective.insurance.v1beta1.QueryVoucherRequest") + proto.RegisterType((*QueryVoucherResponse)(nil), "injective.insurance.v1beta1.QueryVoucherResponse") } func init() { @@ -595,53 +869,69 @@ func init() { } var fileDescriptor_74cebfe4cd18bca2 = []byte{ - // 727 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdf, 0x4b, 0x14, 0x41, - 0x1c, 0xbf, 0x35, 0xb5, 0x9c, 0xa8, 0x60, 0x10, 0x3a, 0x57, 0x5b, 0x6d, 0x25, 0xca, 0xac, 0xdd, - 0xbc, 0x2c, 0xcf, 0x7e, 0x28, 0x19, 0x19, 0x42, 0x91, 0x5d, 0x10, 0x61, 0xc2, 0x31, 0x77, 0x3b, - 0xad, 0x53, 0xee, 0xcc, 0xb9, 0x33, 0x2b, 0x48, 0xf4, 0xd2, 0x5f, 0x10, 0x04, 0xfd, 0x23, 0x41, - 0xd0, 0x63, 0x6f, 0xf6, 0x66, 0xf4, 0xd2, 0x53, 0x84, 0xf6, 0x87, 0xc4, 0xce, 0xce, 0xae, 0x77, - 0x7a, 0x8e, 0xed, 0xd5, 0xdb, 0xed, 0xcc, 0x7c, 0x7e, 0x7d, 0x67, 0xbe, 0x5f, 0x0e, 0x9c, 0x27, - 0xf4, 0x25, 0xae, 0x0b, 0xb2, 0x8e, 0x5d, 0x42, 0x79, 0x14, 0x22, 0x5a, 0xc7, 0xee, 0xfa, 0x44, - 0x0d, 0x0b, 0x34, 0xe1, 0xae, 0x45, 0x38, 0xdc, 0x70, 0x1a, 0x21, 0x13, 0x0c, 0x0e, 0x66, 0x07, - 0x9d, 0xec, 0xa0, 0xa3, 0x0e, 0x9a, 0x43, 0x3e, 0x63, 0xfe, 0x2a, 0x76, 0x51, 0x83, 0xb8, 0x88, - 0x52, 0x26, 0x90, 0x20, 0x8c, 0xf2, 0x04, 0x6a, 0x8e, 0xeb, 0x34, 0x76, 0xc9, 0x92, 0xc3, 0xfd, - 0x3e, 0xf3, 0x99, 0xfc, 0xe9, 0xc6, 0xbf, 0xd4, 0xaa, 0x55, 0x67, 0x3c, 0x60, 0xdc, 0xad, 0x21, - 0xbe, 0x0b, 0xad, 0x33, 0x42, 0xd5, 0xfe, 0x98, 0x4e, 0xc2, 0xc7, 0x14, 0x73, 0xa2, 0xdc, 0xd8, - 0x67, 0xc0, 0xe0, 0xe3, 0x38, 0xd7, 0x42, 0x7a, 0x6e, 0x11, 0x85, 0x28, 0xe0, 0x15, 0xbc, 0x16, - 0x61, 0x2e, 0x6c, 0x04, 0x86, 0xda, 0x6f, 0xf3, 0x06, 0xa3, 0x1c, 0xc3, 0x3b, 0xa0, 0xb7, 0x21, - 0x57, 0x8a, 0xc6, 0x88, 0x71, 0xe1, 0x78, 0x69, 0xd4, 0xd1, 0x14, 0xc6, 0x49, 0xc0, 0x73, 0xdd, - 0x9b, 0x3f, 0x87, 0x0b, 0x15, 0x05, 0xb4, 0xcb, 0x60, 0xa0, 0x55, 0x62, 0x3e, 0xa2, 0x9e, 0xd2, - 0x87, 0x83, 0xa0, 0x2f, 0x40, 0xe1, 0x2b, 0x2c, 0xaa, 0xc4, 0x93, 0x12, 0x7d, 0x95, 0x63, 0xc9, - 0xc2, 0x82, 0x67, 0x2f, 0x03, 0xb3, 0x1d, 0x52, 0x59, 0x9b, 0x01, 0xdd, 0x2f, 0x22, 0xea, 0x29, - 0x63, 0x17, 0xb5, 0xc6, 0x5a, 0x19, 0x24, 0xce, 0x1e, 0x6a, 0xc7, 0x9e, 0x15, 0x06, 0xef, 0xad, - 0x9b, 0xda, 0x55, 0xe2, 0xf3, 0xa0, 0x27, 0x26, 0x89, 0xcb, 0x72, 0x24, 0x9f, 0xba, 0xaa, 0x4e, - 0x02, 0xb7, 0x9f, 0x81, 0x11, 0x29, 0x73, 0x8f, 0x0b, 0x12, 0x20, 0x81, 0xbd, 0x0a, 0xf6, 0x70, - 0xd0, 0x90, 0xef, 0x29, 0xad, 0x91, 0x09, 0xb2, 0x92, 0xec, 0x2d, 0x11, 0x2c, 0x82, 0xa3, 0xc8, - 0xf3, 0x42, 0xcc, 0x79, 0xb1, 0x4b, 0x6e, 0xa5, 0x9f, 0xf6, 0x32, 0x38, 0xab, 0x61, 0x56, 0x31, - 0xa6, 0x40, 0x2f, 0x0a, 0x58, 0x44, 0x85, 0xca, 0x31, 0xe0, 0x24, 0x2f, 0xcf, 0x89, 0x5f, 0x5e, - 0xe6, 0xff, 0x2e, 0x23, 0x34, 0xbd, 0xd4, 0xe4, 0xb8, 0xfd, 0x14, 0x58, 0x92, 0x7d, 0x11, 0x53, - 0x8f, 0x50, 0xff, 0xbf, 0xb9, 0x5e, 0x02, 0xc3, 0x07, 0xf2, 0xfe, 0xab, 0xe7, 0x01, 0x70, 0x5a, - 0x72, 0x3f, 0x64, 0x5e, 0xb4, 0x8a, 0x9f, 0x08, 0x24, 0x70, 0x7a, 0xdb, 0xcf, 0x41, 0x71, 0xff, - 0x96, 0xd2, 0x9b, 0x05, 0x3d, 0x3c, 0x5e, 0x50, 0x0f, 0x6d, 0x4c, 0x7b, 0xd5, 0xf7, 0x93, 0xe6, - 0x4b, 0x18, 0x12, 0x5c, 0xe9, 0x43, 0x1f, 0xe8, 0x91, 0xec, 0xf0, 0xa3, 0x01, 0x4e, 0xed, 0xe9, - 0x34, 0x58, 0xd6, 0xf2, 0x69, 0x7a, 0xd7, 0x9c, 0xee, 0x00, 0x99, 0x64, 0xb2, 0xc7, 0xdf, 0x7e, - 0xff, 0xfd, 0xbe, 0xeb, 0x1c, 0x1c, 0x75, 0x75, 0x93, 0x24, 0x69, 0x60, 0xf8, 0xc5, 0x00, 0x27, - 0x5a, 0x9e, 0x30, 0xbc, 0x9e, 0x43, 0xb9, 0xa9, 0xdb, 0xcd, 0xa9, 0xdc, 0x38, 0xe5, 0x77, 0x56, - 0xfa, 0x9d, 0x86, 0x53, 0xee, 0x5f, 0x0d, 0xd7, 0x6a, 0xdc, 0x5c, 0xee, 0xeb, 0x6c, 0xb2, 0xbc, - 0x81, 0x9f, 0x0d, 0x70, 0xb2, 0xb5, 0x95, 0x61, 0x5e, 0x33, 0x59, 0xdd, 0xcb, 0xf9, 0x81, 0x2a, - 0xc6, 0xa4, 0x8c, 0xe1, 0xc0, 0x4b, 0x39, 0x62, 0x70, 0xf8, 0xcd, 0x00, 0xfd, 0xed, 0xba, 0x18, - 0xde, 0x3e, 0xdc, 0x88, 0x66, 0xae, 0x98, 0x33, 0x9d, 0xc2, 0x55, 0x9a, 0x1b, 0x32, 0xcd, 0x24, - 0x2c, 0x69, 0xd3, 0xe0, 0x94, 0xa2, 0x1a, 0x36, 0x59, 0xff, 0x6a, 0x00, 0xb8, 0xbf, 0xc7, 0xe1, - 0xcd, 0xc3, 0x2d, 0x1d, 0x38, 0x71, 0xcc, 0x5b, 0x9d, 0x81, 0x55, 0x9a, 0xb2, 0x4c, 0x53, 0x82, - 0x57, 0xf4, 0x2d, 0x91, 0x10, 0xb4, 0x64, 0xf9, 0x64, 0x80, 0xfe, 0xec, 0xc2, 0x9b, 0x26, 0x08, - 0x9c, 0x3c, 0xdc, 0xd0, 0xfe, 0x59, 0x64, 0x5e, 0xcb, 0x89, 0x52, 0xfe, 0x27, 0xa4, 0xff, 0x71, - 0x38, 0xa6, 0xf5, 0x1f, 0x48, 0x64, 0x55, 0x0e, 0xa6, 0x39, 0xb2, 0xb9, 0x6d, 0x19, 0x5b, 0xdb, - 0x96, 0xf1, 0x6b, 0xdb, 0x32, 0xde, 0xed, 0x58, 0x85, 0xad, 0x1d, 0xab, 0xf0, 0x63, 0xc7, 0x2a, - 0x2c, 0x3d, 0xf2, 0x89, 0x58, 0x89, 0x6a, 0x4e, 0x9d, 0x05, 0xee, 0x42, 0x4a, 0xf7, 0x00, 0xd5, - 0xf8, 0x2e, 0xf9, 0xe5, 0x3a, 0x0b, 0x71, 0xf3, 0xe7, 0x0a, 0x22, 0x54, 0xf1, 0xf3, 0x26, 0x65, - 0xb1, 0xd1, 0xc0, 0xbc, 0xd6, 0x2b, 0xff, 0x8d, 0x5c, 0xfd, 0x13, 0x00, 0x00, 0xff, 0xff, 0x23, - 0x60, 0x60, 0x91, 0x81, 0x09, 0x00, 0x00, + // 987 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcd, 0x6f, 0xdc, 0x44, + 0x14, 0x8f, 0x4b, 0xf3, 0xf5, 0x50, 0x41, 0x0c, 0x8b, 0x48, 0x9c, 0x74, 0x53, 0x5c, 0x4a, 0x08, + 0x49, 0xec, 0xee, 0x92, 0x92, 0xb4, 0x85, 0x56, 0x2d, 0x6a, 0x50, 0x24, 0x3e, 0xca, 0x56, 0xaa, + 0xa0, 0x54, 0x8a, 0x66, 0xd7, 0xd3, 0x8d, 0x69, 0x3c, 0xb3, 0xf5, 0xd8, 0x2b, 0x55, 0x85, 0x0b, + 0x7f, 0x01, 0x12, 0x57, 0x0e, 0xfd, 0x1f, 0x90, 0x90, 0x38, 0x72, 0x40, 0x2a, 0xb7, 0x22, 0x2e, + 0x88, 0x43, 0x85, 0x12, 0xfe, 0x10, 0xe4, 0x99, 0x67, 0xc7, 0xfb, 0x91, 0xd9, 0x38, 0xf4, 0x14, + 0xdb, 0xf3, 0x7e, 0x1f, 0xef, 0xbd, 0xd9, 0xf7, 0x14, 0x58, 0x0c, 0xf8, 0xd7, 0xac, 0x15, 0x07, + 0x5d, 0xe6, 0x05, 0x5c, 0x26, 0x11, 0xe5, 0x2d, 0xe6, 0x75, 0x6b, 0x4d, 0x16, 0xd3, 0x9a, 0xf7, + 0x20, 0x61, 0xd1, 0x43, 0xb7, 0x13, 0x89, 0x58, 0x90, 0xb9, 0x3c, 0xd0, 0xcd, 0x03, 0x5d, 0x0c, + 0xb4, 0xe7, 0xdb, 0x42, 0xb4, 0x77, 0x99, 0x47, 0x3b, 0x81, 0x47, 0x39, 0x17, 0x31, 0x8d, 0x03, + 0xc1, 0xa5, 0x86, 0xda, 0xcb, 0x26, 0x8d, 0x03, 0xb2, 0x81, 0xe0, 0x96, 0x08, 0x43, 0xc1, 0xbd, + 0xae, 0x48, 0x5a, 0x3b, 0x2c, 0x92, 0x5e, 0xb7, 0x96, 0x3f, 0x63, 0x70, 0xa5, 0x2d, 0xda, 0x42, + 0x3d, 0x7a, 0xe9, 0x13, 0x7e, 0xad, 0xb6, 0x84, 0x0c, 0x85, 0xf4, 0x9a, 0x54, 0x1e, 0xe8, 0xb4, + 0x44, 0xc0, 0xf1, 0x7c, 0xc9, 0xe4, 0xa7, 0xcd, 0x38, 0x93, 0x01, 0x0a, 0x38, 0xa7, 0x61, 0xee, + 0xf3, 0xb4, 0x08, 0x5b, 0x59, 0xdc, 0x4d, 0x1a, 0xd1, 0x50, 0x36, 0xd8, 0x83, 0x84, 0xc9, 0xd8, + 0xa1, 0x30, 0x3f, 0xfc, 0x58, 0x76, 0x04, 0x97, 0x8c, 0x5c, 0x83, 0x89, 0x8e, 0xfa, 0x32, 0x63, + 0x9d, 0xb1, 0xde, 0x7e, 0xb1, 0x7e, 0xd6, 0x35, 0x54, 0xd1, 0xd5, 0xe0, 0xeb, 0x27, 0x9f, 0x3c, + 0x5b, 0x18, 0x6b, 0x20, 0xd0, 0xd9, 0x80, 0xd9, 0x5e, 0x89, 0xcd, 0x84, 0xfb, 0xa8, 0x4f, 0xe6, + 0x60, 0x3a, 0xa4, 0xd1, 0x7d, 0x16, 0x6f, 0x07, 0xbe, 0x92, 0x98, 0x6e, 0x4c, 0xe9, 0x0f, 0x5b, + 0xbe, 0x73, 0x17, 0xec, 0x61, 0x48, 0xb4, 0x76, 0x05, 0x4e, 0xde, 0x4b, 0xb8, 0x8f, 0xc6, 0xde, + 0x31, 0x1a, 0xeb, 0x65, 0x50, 0x38, 0x67, 0x7e, 0x18, 0x7b, 0x5e, 0x18, 0xd6, 0x5f, 0x37, 0x3c, + 0x45, 0xf1, 0x4d, 0x18, 0x4f, 0x49, 0xd2, 0xb2, 0xbc, 0x50, 0x4e, 0x1d, 0xab, 0xa3, 0xe1, 0xce, + 0x17, 0x70, 0x46, 0xc9, 0xdc, 0x90, 0x71, 0x10, 0xd2, 0x98, 0xf9, 0x0d, 0xe6, 0xb3, 0xb0, 0xa3, + 0x2e, 0x5f, 0x56, 0x23, 0x1b, 0xf2, 0x92, 0xf4, 0x97, 0x88, 0xcc, 0xc0, 0x24, 0xf5, 0xfd, 0x88, + 0x49, 0x39, 0x73, 0x42, 0x1d, 0x65, 0xaf, 0xce, 0x5d, 0x78, 0xc3, 0xc0, 0x8c, 0x69, 0xac, 0xc3, + 0x04, 0x0d, 0x45, 0xc2, 0x63, 0xcc, 0x63, 0xd6, 0xd5, 0x37, 0xcf, 0x4d, 0x6f, 0x5e, 0xee, 0xff, + 0x43, 0x11, 0xf0, 0xac, 0xa9, 0x3a, 0xdc, 0xb9, 0x0d, 0x55, 0xc5, 0x7e, 0x93, 0x71, 0x3f, 0xe0, + 0xed, 0xe7, 0xe6, 0xfa, 0x0e, 0x2c, 0x1c, 0xca, 0xfb, 0x7f, 0x3d, 0xcf, 0xc2, 0xeb, 0x8a, 0xfb, + 0x13, 0xe1, 0x27, 0xbb, 0xec, 0x56, 0x4c, 0x63, 0x96, 0x75, 0xfb, 0x2b, 0x98, 0x19, 0x3c, 0x42, + 0xbd, 0xab, 0x30, 0x2e, 0xd3, 0x0f, 0x78, 0xd1, 0x96, 0x8c, 0xad, 0xfe, 0x48, 0xff, 0xf8, 0x34, + 0x83, 0xc6, 0x39, 0x0b, 0x70, 0x5a, 0x91, 0x6f, 0xd2, 0x60, 0x77, 0x58, 0x83, 0x9d, 0x47, 0x58, + 0xcc, 0x21, 0x01, 0xe8, 0xe1, 0x4b, 0x98, 0x96, 0xad, 0x1d, 0x96, 0x9a, 0xcb, 0xae, 0xdc, 0x05, + 0xa3, 0x8f, 0x7e, 0xaa, 0x5b, 0x88, 0xc6, 0x92, 0x1c, 0xb0, 0x39, 0x2b, 0x50, 0x51, 0xe2, 0xb7, + 0x71, 0x30, 0x65, 0xfd, 0xab, 0xc0, 0xb8, 0xcf, 0xb8, 0x08, 0xb1, 0x79, 0xfa, 0xc5, 0x69, 0xc3, + 0x6b, 0x7d, 0xd1, 0xe8, 0xf0, 0x53, 0x98, 0xca, 0x46, 0x1b, 0x1a, 0x5c, 0x29, 0x18, 0xd4, 0x83, + 0xd0, 0xcd, 0x87, 0x5f, 0xb7, 0xe6, 0x5e, 0xd3, 0x1d, 0x47, 0x22, 0xf4, 0x95, 0x73, 0x38, 0x37, + 0xe0, 0xd5, 0xa2, 0x90, 0xd1, 0x95, 0xe1, 0x3e, 0x7d, 0xd3, 0x9b, 0x5d, 0x6e, 0xd7, 0x87, 0x49, + 0x94, 0xc2, 0xb6, 0x1a, 0x6e, 0x91, 0x97, 0x5a, 0xfb, 0xfb, 0xd9, 0xc2, 0x62, 0x3b, 0x88, 0x77, + 0x92, 0x66, 0x9a, 0x8c, 0x87, 0x03, 0x5a, 0xff, 0x59, 0x95, 0xfe, 0x7d, 0x2f, 0x7e, 0xd8, 0x61, + 0x52, 0x01, 0x1a, 0x19, 0x75, 0xfd, 0xf1, 0x29, 0x18, 0x57, 0xf2, 0xe4, 0x27, 0x0b, 0x5e, 0xee, + 0x9b, 0xb1, 0x64, 0xc3, 0xd8, 0x41, 0xc3, 0xd4, 0xb6, 0x2f, 0x1e, 0x03, 0xa9, 0x13, 0x77, 0x96, + 0xbf, 0xfb, 0xf3, 0xdf, 0x1f, 0x4e, 0x9c, 0x23, 0x67, 0x3d, 0xd3, 0x0e, 0xd1, 0xa3, 0x9b, 0xfc, + 0x6a, 0xc1, 0xa9, 0x9e, 0xe1, 0x45, 0xde, 0x2b, 0xa1, 0x5c, 0x98, 0xf3, 0xf6, 0x7a, 0x69, 0x1c, + 0xfa, 0xbd, 0xaa, 0xfc, 0x5e, 0x24, 0xeb, 0xde, 0x91, 0x76, 0xf0, 0x76, 0x3a, 0x56, 0xbd, 0x47, + 0xf9, 0x4e, 0xf9, 0x96, 0xfc, 0x62, 0xc1, 0x4b, 0xbd, 0x43, 0x9c, 0x94, 0x35, 0x93, 0xd7, 0x7d, + 0xa3, 0x3c, 0x10, 0xd3, 0x58, 0x53, 0x69, 0xb8, 0x64, 0xa5, 0x44, 0x1a, 0x92, 0xfc, 0x61, 0x41, + 0x65, 0xd8, 0xfc, 0x26, 0x1f, 0x8c, 0x36, 0x62, 0xd8, 0x28, 0xf6, 0x95, 0xe3, 0xc2, 0x31, 0x9b, + 0x4b, 0x2a, 0x9b, 0x35, 0x52, 0x37, 0x66, 0xc3, 0x32, 0x8a, 0xed, 0xa8, 0x60, 0xfd, 0x77, 0x0b, + 0xc8, 0xe0, 0x74, 0x27, 0x97, 0x47, 0x5b, 0x3a, 0x74, 0xd7, 0xd8, 0xef, 0x1f, 0x0f, 0x8c, 0xd9, + 0x6c, 0xa8, 0x6c, 0xea, 0xe4, 0xbc, 0xf9, 0x27, 0xa1, 0x09, 0x7a, 0x72, 0xf9, 0xd9, 0x82, 0x4a, + 0xde, 0xf0, 0xc2, 0xee, 0x20, 0x6b, 0xa3, 0x0d, 0x0d, 0x6e, 0x21, 0xfb, 0x42, 0x49, 0x14, 0xfa, + 0xaf, 0x29, 0xff, 0xcb, 0x64, 0xc9, 0xe8, 0x3f, 0x54, 0xc8, 0x6d, 0xb5, 0x92, 0xc8, 0x6f, 0x16, + 0xbc, 0x32, 0xb0, 0x6d, 0xc8, 0xa5, 0xd1, 0xfa, 0x87, 0xed, 0x30, 0xfb, 0xf2, 0xb1, 0xb0, 0x98, + 0xc1, 0xba, 0xca, 0xa0, 0x46, 0x3c, 0x63, 0x06, 0xf7, 0x14, 0xbe, 0xa7, 0x01, 0x8f, 0x2d, 0x98, + 0xca, 0x56, 0x11, 0xa9, 0x8d, 0xb6, 0xd0, 0xb7, 0xe4, 0xec, 0x7a, 0x19, 0x08, 0x9a, 0x5d, 0x55, + 0x66, 0x17, 0xc9, 0x39, 0xa3, 0xd9, 0x6c, 0x91, 0x91, 0x1f, 0x2d, 0x98, 0x44, 0x0e, 0x72, 0xfe, + 0xc8, 0x72, 0x99, 0xc1, 0x5a, 0x09, 0x04, 0xfa, 0x5b, 0x51, 0xfe, 0xde, 0x22, 0x6f, 0x1e, 0xc5, + 0xdf, 0xf5, 0xe0, 0xc9, 0x5e, 0xd5, 0x7a, 0xba, 0x57, 0xb5, 0xfe, 0xd9, 0xab, 0x5a, 0xdf, 0xef, + 0x57, 0xc7, 0x9e, 0xee, 0x57, 0xc7, 0xfe, 0xda, 0xaf, 0x8e, 0xdd, 0xf9, 0xac, 0xb0, 0xee, 0xb6, + 0x32, 0xa6, 0x8f, 0x69, 0x53, 0x1e, 0xf0, 0xae, 0xb6, 0x44, 0xc4, 0x8a, 0xaf, 0x3b, 0x34, 0xe0, + 0x78, 0xd3, 0x64, 0x41, 0x54, 0xed, 0xc6, 0xe6, 0x84, 0xfa, 0x8f, 0xe4, 0xdd, 0xff, 0x02, 0x00, + 0x00, 0xff, 0xff, 0x6e, 0xf7, 0xe9, 0x50, 0xb2, 0x0d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -669,6 +959,12 @@ type QueryClient interface { PendingRedemptions(ctx context.Context, in *QueryPendingRedemptionsRequest, opts ...grpc.CallOption) (*QueryPendingRedemptionsResponse, error) // Retrieves the entire insurance module's state InsuranceModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error) + // Retrieves all failed redemption schedules + FailedRedemptions(ctx context.Context, in *QueryFailedRedemptionsRequest, opts ...grpc.CallOption) (*QueryFailedRedemptionsResponse, error) + // Vouchers retrieves all outstanding vouchers; pass an empty denom to get all + Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) + // Voucher retrieves a single voucher for a given denom and address + Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) } type queryClient struct { @@ -733,6 +1029,33 @@ func (c *queryClient) InsuranceModuleState(ctx context.Context, in *QueryModuleS return out, nil } +func (c *queryClient) FailedRedemptions(ctx context.Context, in *QueryFailedRedemptionsRequest, opts ...grpc.CallOption) (*QueryFailedRedemptionsResponse, error) { + out := new(QueryFailedRedemptionsResponse) + err := c.cc.Invoke(ctx, "/injective.insurance.v1beta1.Query/FailedRedemptions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) Vouchers(ctx context.Context, in *QueryVouchersRequest, opts ...grpc.CallOption) (*QueryVouchersResponse, error) { + out := new(QueryVouchersResponse) + err := c.cc.Invoke(ctx, "/injective.insurance.v1beta1.Query/Vouchers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) Voucher(ctx context.Context, in *QueryVoucherRequest, opts ...grpc.CallOption) (*QueryVoucherResponse, error) { + out := new(QueryVoucherResponse) + err := c.cc.Invoke(ctx, "/injective.insurance.v1beta1.Query/Voucher", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Retrieves insurance params @@ -748,6 +1071,12 @@ type QueryServer interface { PendingRedemptions(context.Context, *QueryPendingRedemptionsRequest) (*QueryPendingRedemptionsResponse, error) // Retrieves the entire insurance module's state InsuranceModuleState(context.Context, *QueryModuleStateRequest) (*QueryModuleStateResponse, error) + // Retrieves all failed redemption schedules + FailedRedemptions(context.Context, *QueryFailedRedemptionsRequest) (*QueryFailedRedemptionsResponse, error) + // Vouchers retrieves all outstanding vouchers; pass an empty denom to get all + Vouchers(context.Context, *QueryVouchersRequest) (*QueryVouchersResponse, error) + // Voucher retrieves a single voucher for a given denom and address + Voucher(context.Context, *QueryVoucherRequest) (*QueryVoucherResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -772,6 +1101,15 @@ func (*UnimplementedQueryServer) PendingRedemptions(ctx context.Context, req *Qu func (*UnimplementedQueryServer) InsuranceModuleState(ctx context.Context, req *QueryModuleStateRequest) (*QueryModuleStateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method InsuranceModuleState not implemented") } +func (*UnimplementedQueryServer) FailedRedemptions(ctx context.Context, req *QueryFailedRedemptionsRequest) (*QueryFailedRedemptionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FailedRedemptions not implemented") +} +func (*UnimplementedQueryServer) Vouchers(ctx context.Context, req *QueryVouchersRequest) (*QueryVouchersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Vouchers not implemented") +} +func (*UnimplementedQueryServer) Voucher(ctx context.Context, req *QueryVoucherRequest) (*QueryVoucherResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Voucher not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -885,6 +1223,60 @@ func _Query_InsuranceModuleState_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _Query_FailedRedemptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryFailedRedemptionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).FailedRedemptions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.insurance.v1beta1.Query/FailedRedemptions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).FailedRedemptions(ctx, req.(*QueryFailedRedemptionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_Vouchers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVouchersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Vouchers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.insurance.v1beta1.Query/Vouchers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Vouchers(ctx, req.(*QueryVouchersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_Voucher_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVoucherRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Voucher(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.insurance.v1beta1.Query/Voucher", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Voucher(ctx, req.(*QueryVoucherRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.insurance.v1beta1.Query", HandlerType: (*QueryServer)(nil), @@ -913,6 +1305,18 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "InsuranceModuleState", Handler: _Query_InsuranceModuleState_Handler, }, + { + MethodName: "FailedRedemptions", + Handler: _Query_FailedRedemptions_Handler, + }, + { + MethodName: "Vouchers", + Handler: _Query_Vouchers_Handler, + }, + { + MethodName: "Voucher", + Handler: _Query_Voucher_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/insurance/v1beta1/query.proto", @@ -1305,40 +1709,237 @@ func (m *QueryModuleStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } -func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { - offset -= sovQuery(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *QueryFailedRedemptionsRequest) 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 *QueryInsuranceParamsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n + +func (m *QueryFailedRedemptionsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryInsuranceParamsResponse) Size() (n int) { - if m == nil { - return 0 - } +func (m *QueryFailedRedemptionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n + return len(dAtA) - i, nil } -func (m *QueryInsuranceFundRequest) Size() (n int) { - if m == nil { - return 0 +func (m *QueryFailedRedemptionsResponse) 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 *QueryFailedRedemptionsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryFailedRedemptionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Schedules) > 0 { + for iNdEx := len(m.Schedules) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Schedules[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersRequest) 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 *QueryVouchersRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersRequest) 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 = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersResponse) 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 *QueryVouchersResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Vouchers) > 0 { + for iNdEx := len(m.Vouchers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Vouchers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherRequest) 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 *QueryVoucherRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVoucherResponse) 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 *QueryVoucherResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVoucherResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Voucher.Size() + i -= size + if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *QueryInsuranceParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryInsuranceParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryInsuranceFundRequest) Size() (n int) { + if m == nil { + return 0 } var l int _ = l @@ -1472,6 +2073,86 @@ func (m *QueryModuleStateResponse) Size() (n int) { return n } +func (m *QueryFailedRedemptionsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryFailedRedemptionsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Schedules) > 0 { + for _, e := range m.Schedules { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVouchersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVouchersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Vouchers) > 0 { + for _, e := range m.Vouchers { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVoucherRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVoucherResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Voucher.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2445,6 +3126,503 @@ func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryFailedRedemptionsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFailedRedemptionsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFailedRedemptionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryFailedRedemptionsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryFailedRedemptionsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryFailedRedemptionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Schedules", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Schedules = append(m.Schedules, FailedRedemptionSchedule{}) + if err := m.Schedules[len(m.Schedules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryVouchersRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVouchersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVouchersRequest: 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 ErrIntOverflowQuery + } + 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 ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryVouchersResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVouchersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVouchersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Vouchers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Vouchers = append(m.Vouchers, types1.AddressVoucher{}) + if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryVoucherRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVoucherRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVoucherRequest: 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 ErrIntOverflowQuery + } + 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 ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + 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 Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + 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 ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryVoucherResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryVoucherResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVoucherResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/insurance/types/tx.pb.go b/chain/insurance/types/tx.pb.go index f35a9e93..8d4d846c 100644 --- a/chain/insurance/types/tx.pb.go +++ b/chain/insurance/types/tx.pb.go @@ -378,6 +378,83 @@ func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo +// MsgClaimVoucher defines a message for claiming an outstanding voucher +type MsgClaimVoucher struct { + // The sender's Injective address. + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // The token denom of the voucher to claim. + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (m *MsgClaimVoucher) Reset() { *m = MsgClaimVoucher{} } +func (m *MsgClaimVoucher) String() string { return proto.CompactTextString(m) } +func (*MsgClaimVoucher) ProtoMessage() {} +func (*MsgClaimVoucher) Descriptor() ([]byte, []int) { + return fileDescriptor_7e1fa941c3fd0dc4, []int{8} +} +func (m *MsgClaimVoucher) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgClaimVoucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgClaimVoucher.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgClaimVoucher) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgClaimVoucher.Merge(m, src) +} +func (m *MsgClaimVoucher) XXX_Size() int { + return m.Size() +} +func (m *MsgClaimVoucher) XXX_DiscardUnknown() { + xxx_messageInfo_MsgClaimVoucher.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgClaimVoucher proto.InternalMessageInfo + +type MsgClaimVoucherResponse struct { +} + +func (m *MsgClaimVoucherResponse) Reset() { *m = MsgClaimVoucherResponse{} } +func (m *MsgClaimVoucherResponse) String() string { return proto.CompactTextString(m) } +func (*MsgClaimVoucherResponse) ProtoMessage() {} +func (*MsgClaimVoucherResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_7e1fa941c3fd0dc4, []int{9} +} +func (m *MsgClaimVoucherResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgClaimVoucherResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgClaimVoucherResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgClaimVoucherResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgClaimVoucherResponse.Merge(m, src) +} +func (m *MsgClaimVoucherResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgClaimVoucherResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgClaimVoucherResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgClaimVoucherResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgCreateInsuranceFund)(nil), "injective.insurance.v1beta1.MsgCreateInsuranceFund") proto.RegisterType((*MsgCreateInsuranceFundResponse)(nil), "injective.insurance.v1beta1.MsgCreateInsuranceFundResponse") @@ -387,6 +464,8 @@ func init() { proto.RegisterType((*MsgRequestRedemptionResponse)(nil), "injective.insurance.v1beta1.MsgRequestRedemptionResponse") proto.RegisterType((*MsgUpdateParams)(nil), "injective.insurance.v1beta1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.insurance.v1beta1.MsgUpdateParamsResponse") + proto.RegisterType((*MsgClaimVoucher)(nil), "injective.insurance.v1beta1.MsgClaimVoucher") + proto.RegisterType((*MsgClaimVoucherResponse)(nil), "injective.insurance.v1beta1.MsgClaimVoucherResponse") } func init() { @@ -394,56 +473,59 @@ func init() { } var fileDescriptor_7e1fa941c3fd0dc4 = []byte{ - // 779 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x4f, 0xe3, 0x46, - 0x14, 0x8f, 0x1b, 0x08, 0x30, 0x50, 0x10, 0x2e, 0x25, 0x4e, 0xa8, 0x9c, 0x34, 0xa5, 0x52, 0x94, - 0x82, 0xad, 0x84, 0x8a, 0x96, 0xf4, 0x44, 0xa0, 0x55, 0x91, 0x1a, 0xd1, 0xa6, 0xed, 0xa5, 0x97, - 0x68, 0x62, 0x8f, 0xcc, 0x94, 0xd8, 0x63, 0x3c, 0x63, 0x96, 0xdc, 0x76, 0xf7, 0xb2, 0xab, 0x3d, - 0xf1, 0x11, 0xf8, 0x08, 0x39, 0xec, 0x69, 0xb5, 0x1f, 0x80, 0x23, 0xda, 0xd3, 0x9e, 0x56, 0x2b, - 0x38, 0xb0, 0x1f, 0x62, 0x0f, 0x2b, 0x7b, 0xc6, 0x76, 0xb2, 0x84, 0xbf, 0x17, 0xf0, 0xfb, 0xbd, - 0xdf, 0x7b, 0xef, 0xf7, 0xf3, 0x9b, 0x8c, 0xc1, 0x32, 0x76, 0xfe, 0x47, 0x06, 0xc3, 0x87, 0x48, - 0xc7, 0x0e, 0xf5, 0x3d, 0xe8, 0x18, 0x48, 0x3f, 0xac, 0x76, 0x10, 0x83, 0x55, 0x9d, 0x1d, 0x69, - 0xae, 0x47, 0x18, 0x91, 0x97, 0x62, 0x96, 0x16, 0xb3, 0x34, 0xc1, 0xca, 0x2f, 0x58, 0xc4, 0x22, - 0x21, 0x4f, 0x0f, 0x9e, 0x78, 0x49, 0x5e, 0x35, 0x08, 0xb5, 0x09, 0xd5, 0x3b, 0x90, 0x26, 0x0d, - 0x0d, 0x82, 0x1d, 0x91, 0xcf, 0x8a, 0xbc, 0x4d, 0x2d, 0xfd, 0xb0, 0x1a, 0xfc, 0x13, 0x89, 0x1c, - 0x4f, 0xb4, 0x79, 0x47, 0x1e, 0x88, 0xd4, 0x0f, 0x37, 0x89, 0x4d, 0x84, 0x71, 0xf2, 0xf7, 0x09, - 0x99, 0x78, 0xd0, 0xe8, 0x26, 0x4c, 0x1e, 0x0a, 0xda, 0x3c, 0xb4, 0xb1, 0x43, 0xf4, 0xf0, 0x2f, - 0x87, 0x4a, 0xc7, 0x69, 0xb0, 0xd8, 0xa4, 0xd6, 0x96, 0x87, 0x20, 0x43, 0x3b, 0x51, 0xdb, 0xdf, - 0x7c, 0xc7, 0x94, 0x17, 0x41, 0x86, 0x22, 0xc7, 0x44, 0x9e, 0x22, 0x15, 0xa5, 0xf2, 0x54, 0x4b, - 0x44, 0x01, 0xce, 0xb0, 0xb1, 0x8f, 0x3c, 0xe5, 0x0b, 0x8e, 0xf3, 0x48, 0x2e, 0x80, 0xe9, 0x03, - 0x9f, 0x30, 0xd4, 0x36, 0x91, 0x43, 0x6c, 0x25, 0x1d, 0x26, 0x41, 0x08, 0x6d, 0x07, 0x48, 0x40, - 0xe0, 0x72, 0xda, 0xc1, 0x8b, 0x52, 0xc6, 0x38, 0x81, 0x43, 0x0d, 0x48, 0x91, 0xfc, 0x2d, 0x98, - 0x11, 0x84, 0xb0, 0x4a, 0x19, 0x0f, 0x19, 0xa2, 0xe8, 0xaf, 0x00, 0x92, 0x7f, 0x8d, 0x7b, 0xb0, - 0x9e, 0x8b, 0x94, 0x4c, 0x51, 0x2a, 0xcf, 0xd6, 0x96, 0xb5, 0x64, 0x67, 0xc2, 0xb0, 0xf0, 0xaf, - 0xed, 0x86, 0xe1, 0x3f, 0x3d, 0x17, 0x45, 0x93, 0x82, 0xe7, 0xc0, 0x03, 0x3a, 0x72, 0xb1, 0xd7, - 0x53, 0x26, 0x8a, 0x52, 0x39, 0xdd, 0x12, 0x91, 0xfc, 0x3b, 0x98, 0xc3, 0x0e, 0x66, 0x18, 0x76, - 0xdb, 0x26, 0x72, 0x09, 0xc5, 0x4c, 0x99, 0x2c, 0x4a, 0xe5, 0xe9, 0x5a, 0x4e, 0x13, 0xdb, 0x09, - 0xa4, 0xc7, 0xdd, 0xb7, 0x08, 0x76, 0x1a, 0x63, 0xa7, 0xef, 0x0a, 0xa9, 0xd6, 0xac, 0xa8, 0xdb, - 0xe6, 0x65, 0xf5, 0x9f, 0x9f, 0x9f, 0x14, 0x52, 0x1f, 0x4e, 0x0a, 0xa9, 0xa7, 0x97, 0xfd, 0x8a, - 0x78, 0x75, 0x2f, 0x2e, 0xfb, 0x95, 0x62, 0xb2, 0xcd, 0xd1, 0xef, 0xbd, 0x54, 0x04, 0xea, 0xe8, - 0x4c, 0x0b, 0x51, 0x97, 0x38, 0x14, 0x95, 0xfa, 0x12, 0xf8, 0xb2, 0x49, 0xad, 0x7f, 0x83, 0x9e, - 0x8f, 0x3c, 0xcc, 0xd0, 0xb5, 0xbb, 0x5a, 0x02, 0x53, 0x36, 0xf4, 0xf6, 0x11, 0x6b, 0x63, 0x53, - 0xac, 0x6b, 0x92, 0x03, 0x3b, 0xa6, 0xbc, 0x01, 0x26, 0x22, 0x93, 0xe9, 0xbb, 0x99, 0x8c, 0xf8, - 0x75, 0xfd, 0x1a, 0x77, 0xd9, 0x21, 0x77, 0x89, 0xc0, 0x52, 0x16, 0x7c, 0x3d, 0x04, 0xc4, 0x5e, - 0x5e, 0x4b, 0x60, 0xa1, 0x49, 0xad, 0x16, 0x3a, 0xf0, 0x11, 0x65, 0x2d, 0x64, 0x22, 0xdb, 0x65, - 0x98, 0x38, 0x0f, 0xb3, 0xf4, 0x13, 0xc8, 0x40, 0x9b, 0xf8, 0xce, 0x9d, 0x1d, 0x09, 0x7a, 0x7d, - 0xfd, 0x1a, 0x43, 0xea, 0x90, 0xa1, 0x2b, 0x2a, 0x4b, 0x2a, 0xf8, 0x66, 0x14, 0x1e, 0xdb, 0x7b, - 0x25, 0x81, 0xb9, 0xc0, 0xb8, 0x6b, 0x42, 0x86, 0xfe, 0x84, 0x1e, 0xb4, 0xa9, 0xbc, 0x0e, 0xa6, - 0xa0, 0xcf, 0xf6, 0x88, 0x87, 0x59, 0x8f, 0x9b, 0x6b, 0x28, 0x6f, 0x5e, 0xae, 0x2e, 0x08, 0xa9, - 0x9b, 0xa6, 0xe9, 0x21, 0x4a, 0xff, 0x66, 0x1e, 0x76, 0xac, 0x56, 0x42, 0x95, 0x37, 0x41, 0xc6, - 0x0d, 0x3b, 0x84, 0xb6, 0xa7, 0x6b, 0xdf, 0x69, 0x37, 0x5c, 0x55, 0x1a, 0x1f, 0x16, 0xd9, 0xe4, - 0x85, 0xf5, 0x95, 0xc0, 0x5e, 0xd2, 0x32, 0x70, 0x98, 0x1b, 0x5e, 0xd9, 0x80, 0xd0, 0x52, 0x0e, - 0x64, 0x3f, 0x83, 0x22, 0x5f, 0xb5, 0x8f, 0x69, 0x90, 0x6e, 0x52, 0x4b, 0x7e, 0x26, 0x81, 0xaf, - 0x46, 0x5d, 0x1e, 0x6b, 0x37, 0x6a, 0x1b, 0x7d, 0xbe, 0xf3, 0xbf, 0x3c, 0xa0, 0x28, 0x52, 0x24, - 0x77, 0x01, 0x18, 0xf8, 0x41, 0x54, 0x6e, 0x6b, 0x95, 0x70, 0xf3, 0xb5, 0xbb, 0x73, 0xe3, 0x69, - 0x4f, 0x24, 0x30, 0x7f, 0xf5, 0xcc, 0x56, 0x6f, 0xeb, 0x74, 0xa5, 0x24, 0xbf, 0x71, 0xef, 0x92, - 0x58, 0x83, 0x07, 0x66, 0x86, 0xce, 0xd5, 0xca, 0xad, 0x3e, 0x06, 0xd8, 0xf9, 0x1f, 0xef, 0xc3, - 0x8e, 0x66, 0xe6, 0xc7, 0x1f, 0x5f, 0xf6, 0x2b, 0x52, 0x03, 0x9f, 0x9e, 0xab, 0xd2, 0xd9, 0xb9, - 0x2a, 0xbd, 0x3f, 0x57, 0xa5, 0xe3, 0x0b, 0x35, 0x75, 0x76, 0xa1, 0xa6, 0xde, 0x5e, 0xa8, 0xa9, - 0xff, 0x76, 0x2d, 0xcc, 0xf6, 0xfc, 0x8e, 0x66, 0x10, 0x5b, 0xdf, 0x89, 0x06, 0xfc, 0x01, 0x3b, - 0x54, 0x8f, 0xc7, 0xad, 0x1a, 0xc4, 0x43, 0x83, 0xe1, 0x1e, 0xc4, 0x8e, 0x6e, 0x13, 0xd3, 0xef, - 0x22, 0x3a, 0xf0, 0xb5, 0x0b, 0x6e, 0x78, 0xda, 0xc9, 0x84, 0x1f, 0xaa, 0xb5, 0x4f, 0x01, 0x00, - 0x00, 0xff, 0xff, 0x5f, 0x13, 0xc4, 0xc0, 0xbe, 0x07, 0x00, 0x00, + // 831 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0xe3, 0x44, + 0x14, 0x8f, 0x49, 0x9b, 0xdd, 0x4e, 0x97, 0x5d, 0xad, 0x09, 0x1b, 0x27, 0x8b, 0x9c, 0x10, 0x16, + 0x29, 0x0a, 0xbb, 0xb6, 0x92, 0x45, 0x85, 0x86, 0x53, 0xd3, 0x82, 0xa8, 0x44, 0x54, 0x08, 0x7f, + 0x0e, 0x5c, 0xa2, 0x89, 0x3d, 0x72, 0x86, 0xc6, 0x1e, 0x77, 0x66, 0x5c, 0x9a, 0x1b, 0x70, 0x01, + 0x71, 0xea, 0x47, 0xe8, 0x47, 0xc8, 0x81, 0x13, 0xe2, 0x03, 0xf4, 0x58, 0x71, 0xe2, 0x84, 0x50, + 0x7b, 0x28, 0x47, 0x3e, 0x02, 0xb2, 0x67, 0xfc, 0x27, 0xdb, 0xa4, 0x69, 0x7b, 0x49, 0xfc, 0xde, + 0xfb, 0xbd, 0xf7, 0x7e, 0xbf, 0x79, 0xf3, 0x07, 0x3c, 0xc3, 0xde, 0x77, 0xc8, 0xe2, 0xf8, 0x10, + 0x99, 0xd8, 0x63, 0x01, 0x85, 0x9e, 0x85, 0xcc, 0xc3, 0xd6, 0x10, 0x71, 0xd8, 0x32, 0xf9, 0x91, + 0xe1, 0x53, 0xc2, 0x89, 0xfa, 0x34, 0x41, 0x19, 0x09, 0xca, 0x90, 0xa8, 0x4a, 0xd1, 0x21, 0x0e, + 0x89, 0x70, 0x66, 0xf8, 0x25, 0x52, 0x2a, 0xba, 0x45, 0x98, 0x4b, 0x98, 0x39, 0x84, 0x2c, 0x2d, + 0x68, 0x11, 0xec, 0xc9, 0x78, 0x49, 0xc6, 0x5d, 0xe6, 0x98, 0x87, 0xad, 0xf0, 0x4f, 0x06, 0xca, + 0x22, 0x30, 0x10, 0x15, 0x85, 0x21, 0x43, 0xef, 0x5d, 0x47, 0x36, 0x25, 0x26, 0xc0, 0xef, 0xa6, + 0x60, 0x42, 0xa1, 0x35, 0x4e, 0x91, 0xc2, 0x94, 0xb0, 0xc7, 0xd0, 0xc5, 0x1e, 0x31, 0xa3, 0x5f, + 0xe1, 0xaa, 0x1f, 0xe7, 0xc1, 0x93, 0x1e, 0x73, 0xb6, 0x29, 0x82, 0x1c, 0xed, 0xc6, 0x65, 0x3f, + 0x09, 0x3c, 0x5b, 0x7d, 0x02, 0x0a, 0x0c, 0x79, 0x36, 0xa2, 0x9a, 0x52, 0x53, 0x1a, 0x6b, 0x7d, + 0x69, 0x85, 0x7e, 0x8e, 0xad, 0x7d, 0x44, 0xb5, 0xd7, 0x84, 0x5f, 0x58, 0x6a, 0x15, 0xac, 0x1f, + 0x04, 0x84, 0xa3, 0x81, 0x8d, 0x3c, 0xe2, 0x6a, 0xf9, 0x28, 0x08, 0x22, 0xd7, 0x4e, 0xe8, 0x09, + 0x01, 0x82, 0xce, 0x20, 0x5c, 0x28, 0x6d, 0x45, 0x00, 0x84, 0xab, 0x0b, 0x19, 0x52, 0xdf, 0x06, + 0x0f, 0x24, 0x20, 0xca, 0xd2, 0x56, 0x23, 0x84, 0x4c, 0xfa, 0x22, 0x74, 0xa9, 0x1f, 0x27, 0x35, + 0xf8, 0xc4, 0x47, 0x5a, 0xa1, 0xa6, 0x34, 0x1e, 0xb6, 0x9f, 0x19, 0xe9, 0xcc, 0xa4, 0x60, 0xa9, + 0xdf, 0xd8, 0x8b, 0xcc, 0xaf, 0x26, 0x3e, 0x8a, 0x3b, 0x85, 0xdf, 0xa1, 0x06, 0x74, 0xe4, 0x63, + 0x3a, 0xd1, 0xee, 0xd5, 0x94, 0x46, 0xbe, 0x2f, 0x2d, 0xf5, 0x53, 0xf0, 0x08, 0x7b, 0x98, 0x63, + 0x38, 0x1e, 0xd8, 0xc8, 0x27, 0x0c, 0x73, 0xed, 0x7e, 0x4d, 0x69, 0xac, 0xb7, 0xcb, 0x86, 0x9c, + 0x4e, 0x48, 0x3d, 0xa9, 0xbe, 0x4d, 0xb0, 0xd7, 0x5d, 0x39, 0xfd, 0xbb, 0x9a, 0xeb, 0x3f, 0x94, + 0x79, 0x3b, 0x22, 0xad, 0xf3, 0xe1, 0x2f, 0x27, 0xd5, 0xdc, 0xbf, 0x27, 0xd5, 0xdc, 0x4f, 0x97, + 0xd3, 0xa6, 0x5c, 0xba, 0x5f, 0x2f, 0xa7, 0xcd, 0x5a, 0x3a, 0xcd, 0xf9, 0xeb, 0x5e, 0xaf, 0x01, + 0x7d, 0x7e, 0xa4, 0x8f, 0x98, 0x4f, 0x3c, 0x86, 0xea, 0x53, 0x05, 0xbc, 0xde, 0x63, 0xce, 0xd7, + 0x61, 0xcd, 0xef, 0x29, 0xe6, 0x68, 0xe1, 0xac, 0x9e, 0x82, 0x35, 0x17, 0xd2, 0x7d, 0xc4, 0x07, + 0xd8, 0x96, 0xe3, 0xba, 0x2f, 0x1c, 0xbb, 0xb6, 0xba, 0x09, 0xee, 0xc5, 0x22, 0xf3, 0x37, 0x13, + 0x19, 0xe3, 0x3b, 0xe6, 0x02, 0x75, 0xa5, 0x19, 0x75, 0x29, 0xc1, 0x7a, 0x09, 0xbc, 0x39, 0xe3, + 0x48, 0xb4, 0xfc, 0xa1, 0x80, 0x62, 0x8f, 0x39, 0x7d, 0x74, 0x10, 0x20, 0xc6, 0xfb, 0xc8, 0x46, + 0xae, 0xcf, 0x31, 0xf1, 0xee, 0x26, 0xe9, 0x03, 0x50, 0x80, 0x2e, 0x09, 0xbc, 0x1b, 0x2b, 0x92, + 0xf0, 0xce, 0xc6, 0x02, 0x41, 0xfa, 0x8c, 0xa0, 0x2b, 0x2c, 0xeb, 0x3a, 0x78, 0x6b, 0x9e, 0x3f, + 0x91, 0xf7, 0xbb, 0x02, 0x1e, 0x85, 0xc2, 0x7d, 0x1b, 0x72, 0xf4, 0x39, 0xa4, 0xd0, 0x65, 0xea, + 0x06, 0x58, 0x83, 0x01, 0x1f, 0x11, 0x8a, 0xf9, 0x44, 0x88, 0xeb, 0x6a, 0x7f, 0xfe, 0xf6, 0xa2, + 0x28, 0xa9, 0x6e, 0xd9, 0x36, 0x45, 0x8c, 0x7d, 0xc9, 0x29, 0xf6, 0x9c, 0x7e, 0x0a, 0x55, 0xb7, + 0x40, 0xc1, 0x8f, 0x2a, 0x44, 0xb2, 0xd7, 0xdb, 0xef, 0x18, 0xd7, 0x5c, 0x55, 0x86, 0x68, 0x16, + 0xcb, 0x14, 0x89, 0x9d, 0xe7, 0xa1, 0xbc, 0xb4, 0x64, 0xa8, 0xb0, 0x3c, 0x3b, 0xb2, 0x0c, 0xd1, + 0x7a, 0x19, 0x94, 0x5e, 0x71, 0x25, 0xba, 0x68, 0x24, 0x6b, 0x7b, 0x0c, 0xb1, 0xfb, 0x0d, 0x09, + 0xac, 0x91, 0xb8, 0x17, 0xe6, 0x0e, 0xac, 0x08, 0x56, 0xc5, 0x8d, 0x20, 0x86, 0x25, 0x8c, 0x4e, + 0x6b, 0xc1, 0x82, 0xcf, 0xd2, 0xc9, 0x36, 0x90, 0x74, 0xb2, 0xae, 0x98, 0x4e, 0xfb, 0xbf, 0x15, + 0x90, 0xef, 0x31, 0x47, 0xfd, 0x59, 0x01, 0x6f, 0xcc, 0xbb, 0xcb, 0x5e, 0x5e, 0xbb, 0x54, 0xf3, + 0x8f, 0x5b, 0xe5, 0xa3, 0x3b, 0x24, 0xc5, 0x8c, 0xd4, 0x31, 0x00, 0x99, 0xf3, 0xd9, 0x5c, 0x56, + 0x2a, 0xc5, 0x56, 0xda, 0x37, 0xc7, 0x26, 0xdd, 0x7e, 0x54, 0xc0, 0xe3, 0xab, 0x47, 0xa8, 0xb5, + 0xac, 0xd2, 0x95, 0x94, 0xca, 0xe6, 0xad, 0x53, 0x12, 0x0e, 0x14, 0x3c, 0x98, 0xd9, 0xe6, 0xcf, + 0x97, 0xea, 0xc8, 0xa0, 0x2b, 0xef, 0xdf, 0x06, 0x9d, 0xed, 0x39, 0xb3, 0x07, 0x97, 0xf6, 0xcc, + 0xa2, 0x97, 0xf7, 0x9c, 0xb7, 0xd7, 0x2a, 0xab, 0x3f, 0x5c, 0x4e, 0x9b, 0x4a, 0x17, 0x9f, 0x9e, + 0xeb, 0xca, 0xd9, 0xb9, 0xae, 0xfc, 0x73, 0xae, 0x2b, 0xc7, 0x17, 0x7a, 0xee, 0xec, 0x42, 0xcf, + 0xfd, 0x75, 0xa1, 0xe7, 0xbe, 0xdd, 0x73, 0x30, 0x1f, 0x05, 0x43, 0xc3, 0x22, 0xae, 0xb9, 0x1b, + 0x37, 0xf8, 0x0c, 0x0e, 0x99, 0x99, 0xb4, 0x7b, 0x61, 0x11, 0x8a, 0xb2, 0xe6, 0x08, 0x62, 0xcf, + 0x74, 0x89, 0x1d, 0x8c, 0x11, 0xcb, 0x3c, 0xf8, 0xe1, 0x23, 0xc7, 0x86, 0x85, 0xe8, 0xad, 0x7e, + 0xf9, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x84, 0xf7, 0x60, 0xc1, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -467,6 +549,8 @@ type MsgClient interface { // sender's insurance fund tokens RequestRedemption(ctx context.Context, in *MsgRequestRedemption, opts ...grpc.CallOption) (*MsgRequestRedemptionResponse, error) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) + // ClaimVoucher defines a method for claiming an outstanding voucher + ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts ...grpc.CallOption) (*MsgClaimVoucherResponse, error) } type msgClient struct { @@ -513,6 +597,15 @@ func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts return out, nil } +func (c *msgClient) ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts ...grpc.CallOption) (*MsgClaimVoucherResponse, error) { + out := new(MsgClaimVoucherResponse) + err := c.cc.Invoke(ctx, "/injective.insurance.v1beta1.Msg/ClaimVoucher", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // CreateInsuranceFund defines a method for creating an insurance fund @@ -524,6 +617,8 @@ type MsgServer interface { // sender's insurance fund tokens RequestRedemption(context.Context, *MsgRequestRedemption) (*MsgRequestRedemptionResponse, error) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) + // ClaimVoucher defines a method for claiming an outstanding voucher + ClaimVoucher(context.Context, *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -542,6 +637,9 @@ func (*UnimplementedMsgServer) RequestRedemption(ctx context.Context, req *MsgRe func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") } +func (*UnimplementedMsgServer) ClaimVoucher(ctx context.Context, req *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ClaimVoucher not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -619,6 +717,24 @@ func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Msg_ClaimVoucher_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgClaimVoucher) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).ClaimVoucher(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.insurance.v1beta1.Msg/ClaimVoucher", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).ClaimVoucher(ctx, req.(*MsgClaimVoucher)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.insurance.v1beta1.Msg", HandlerType: (*MsgServer)(nil), @@ -639,6 +755,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "UpdateParams", Handler: _Msg_UpdateParams_Handler, }, + { + MethodName: "ClaimVoucher", + Handler: _Msg_ClaimVoucher_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/insurance/v1beta1/tx.proto", @@ -948,6 +1068,66 @@ func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *MsgClaimVoucher) 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 *MsgClaimVoucher) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgClaimVoucher) 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 = encodeVarintTx(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgClaimVoucherResponse) 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 *MsgClaimVoucherResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgClaimVoucherResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func encodeVarintTx(dAtA []byte, offset int, v uint64) int { offset -= sovTx(v) base := offset @@ -1085,6 +1265,32 @@ func (m *MsgUpdateParamsResponse) Size() (n int) { return n } +func (m *MsgClaimVoucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgClaimVoucherResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1981,6 +2187,170 @@ func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgClaimVoucher) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgClaimVoucher: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgClaimVoucher: 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 stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + 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 ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + 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 ErrIntOverflowTx + } + 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 ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgClaimVoucherResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgClaimVoucherResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgClaimVoucherResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/oracle/types/chainlink_data_streams.go b/chain/oracle/types/chainlink_data_streams.go new file mode 100644 index 00000000..541fd074 --- /dev/null +++ b/chain/oracle/types/chainlink_data_streams.go @@ -0,0 +1,41 @@ +package types + +import ( + "cosmossdk.io/math" +) + +// NewChainlinkDataStreamsPriceState creates a new ChainlinkDataStreamsPriceState instance. +func NewChainlinkDataStreamsPriceState( + feedID string, + reportPrice math.Int, + validFromTimestamp uint64, + observationsTimestamp uint64, + expiresAt uint64, + price math.LegacyDec, + blockTime int64, +) *ChainlinkDataStreamsPriceState { + return &ChainlinkDataStreamsPriceState{ + FeedId: feedID, + ReportPrice: reportPrice, + ValidFromTimestamp: validFromTimestamp, + ObservationsTimestamp: observationsTimestamp, + ExpiresAt: expiresAt, + PriceState: *NewPriceState(price, blockTime), + } +} + +// Update updates the ChainlinkDataStreamsPriceState with new values. +func (c *ChainlinkDataStreamsPriceState) Update( + reportPrice math.Int, + validFromTimestamp uint64, + observationsTimestamp uint64, + expiresAt uint64, + price math.LegacyDec, + blockTime int64, +) { + c.ReportPrice = reportPrice + c.ValidFromTimestamp = validFromTimestamp + c.ObservationsTimestamp = observationsTimestamp + c.ExpiresAt = expiresAt + c.PriceState.UpdatePrice(price, blockTime) +} diff --git a/chain/oracle/types/codec.go b/chain/oracle/types/codec.go index 14457332..fda916a6 100644 --- a/chain/oracle/types/codec.go +++ b/chain/oracle/types/codec.go @@ -20,6 +20,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgRelayProviderPrices{}, "oracle/MsgRelayProviderPrices", nil) cdc.RegisterConcrete(&MsgRelayPythPrices{}, "oracle/MsgRelayPythPrices", nil) cdc.RegisterConcrete(&MsgRelayStorkPrices{}, "oracle/MsgRelayStorkPrices", nil) + cdc.RegisterConcrete(&MsgRelayChainlinkPrices{}, "oracle/MsgRelayChainlinkPrices", nil) cdc.RegisterConcrete(&MsgUpdateParams{}, "oracle/MsgUpdateParams", nil) cdc.RegisterConcrete(&GrantPriceFeederPrivilegeProposal{}, "oracle/GrantPriceFeederPrivilegeProposal", nil) @@ -45,6 +46,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgRelayProviderPrices{}, &MsgRelayPythPrices{}, &MsgRelayStorkPrices{}, + &MsgRelayChainlinkPrices{}, &MsgUpdateParams{}, ) diff --git a/chain/oracle/types/events.pb.go b/chain/oracle/types/events.pb.go index e8c3cda5..37ecacfa 100644 --- a/chain/oracle/types/events.pb.go +++ b/chain/oracle/types/events.pb.go @@ -25,6 +25,9 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +// Deprecated: Do not use. +// +// Deprecated: Do not use. type SetChainlinkPriceEvent struct { FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` Answer cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=answer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"answer"` @@ -78,7 +81,9 @@ func (m *SetChainlinkPriceEvent) GetTimestamp() uint64 { return 0 } -// Event type upon set ref +// Deprecated: Do not use. +// +// Deprecated: Do not use. type SetBandPriceEvent struct { Relayer string `protobuf:"bytes,1,opt,name=relayer,proto3" json:"relayer,omitempty"` Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` @@ -148,6 +153,9 @@ func (m *SetBandPriceEvent) GetRequestId() uint64 { return 0 } +// Deprecated: Do not use. +// +// Deprecated: Do not use. type SetBandIBCPriceEvent struct { Relayer string `protobuf:"bytes,1,opt,name=relayer,proto3" json:"relayer,omitempty"` Symbols []string `protobuf:"bytes,2,rep,name=symbols,proto3" json:"symbols,omitempty"` @@ -225,6 +233,9 @@ func (m *SetBandIBCPriceEvent) GetClientId() int64 { return 0 } +// Deprecated: Do not use. +// +// Deprecated: Do not use. type EventBandIBCAckSuccess struct { AckResult string `protobuf:"bytes,1,opt,name=ack_result,json=ackResult,proto3" json:"ack_result,omitempty"` ClientId int64 `protobuf:"varint,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` @@ -277,6 +288,9 @@ func (m *EventBandIBCAckSuccess) GetClientId() int64 { return 0 } +// Deprecated: Do not use. +// +// Deprecated: Do not use. type EventBandIBCAckError struct { AckError string `protobuf:"bytes,1,opt,name=ack_error,json=ackError,proto3" json:"ack_error,omitempty"` ClientId int64 `protobuf:"varint,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` @@ -329,6 +343,9 @@ func (m *EventBandIBCAckError) GetClientId() int64 { return 0 } +// Deprecated: Do not use. +// +// Deprecated: Do not use. type EventBandIBCResponseTimeout struct { ClientId int64 `protobuf:"varint,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` } @@ -701,52 +718,52 @@ func init() { } var fileDescriptor_c42b07097291dfa0 = []byte{ - // 716 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xbd, 0x6e, 0x13, 0x4b, - 0x14, 0xf6, 0xda, 0x8e, 0x13, 0x4f, 0x6e, 0x73, 0xf7, 0xfa, 0x86, 0x55, 0x02, 0x8e, 0x31, 0x42, - 0x32, 0x05, 0xbb, 0x0a, 0x34, 0xfc, 0x34, 0xc4, 0x49, 0x90, 0x2c, 0xa5, 0xb0, 0xd6, 0x11, 0x42, - 0x34, 0xd1, 0x78, 0xf6, 0xc4, 0x1e, 0xbc, 0xbb, 0xe3, 0xcc, 0x8c, 0x8d, 0xfc, 0x06, 0x14, 0x14, - 0x74, 0xb4, 0x3c, 0x0b, 0x55, 0xca, 0x94, 0x88, 0x22, 0x42, 0x89, 0xc4, 0x73, 0xa0, 0x99, 0x9d, - 0xb5, 0x1d, 0x2b, 0x8b, 0x1c, 0xd1, 0xf9, 0xfc, 0x7d, 0xdf, 0x77, 0x8e, 0xcf, 0x99, 0x45, 0x0f, - 0x69, 0xfc, 0x1e, 0x88, 0xa4, 0x63, 0xf0, 0x18, 0xc7, 0x24, 0x04, 0x6f, 0xbc, 0xd3, 0x05, 0x89, - 0x77, 0x3c, 0x18, 0x43, 0x2c, 0x85, 0x3b, 0xe4, 0x4c, 0x32, 0xdb, 0x99, 0xa6, 0xb9, 0x49, 0x9a, - 0x6b, 0xd2, 0x36, 0x2b, 0x3d, 0xd6, 0x63, 0x3a, 0xc9, 0x53, 0xbf, 0x92, 0xfc, 0xcd, 0x2a, 0x61, - 0x22, 0x62, 0xc2, 0xeb, 0x62, 0x31, 0x43, 0x24, 0x8c, 0xc6, 0x26, 0x9e, 0x4d, 0x6b, 0xe0, 0x75, - 0x5a, 0xfd, 0x93, 0x85, 0x36, 0x3a, 0x20, 0xf7, 0xfa, 0x98, 0xc6, 0x21, 0x8d, 0x07, 0x6d, 0x4e, - 0x09, 0x1c, 0x28, 0x61, 0xf6, 0x1d, 0xb4, 0x7a, 0x02, 0x10, 0x1c, 0xd3, 0xc0, 0xb1, 0x6a, 0x56, - 0xa3, 0xec, 0x97, 0x94, 0xd9, 0x0a, 0xec, 0x97, 0xa8, 0x84, 0x63, 0xf1, 0x01, 0xb8, 0x93, 0x57, - 0xfe, 0xe6, 0x83, 0xb3, 0x8b, 0xed, 0xdc, 0x8f, 0x8b, 0xed, 0xad, 0x44, 0x92, 0x08, 0x06, 0x2e, - 0x65, 0x5e, 0x84, 0x65, 0xdf, 0x3d, 0x84, 0x1e, 0x26, 0x93, 0x7d, 0x20, 0xbe, 0x29, 0xb1, 0xef, - 0xa2, 0xb2, 0xa4, 0x11, 0x08, 0x89, 0xa3, 0xa1, 0x53, 0xa8, 0x59, 0x8d, 0xa2, 0x3f, 0x73, 0xd4, - 0xbf, 0x59, 0xe8, 0xdf, 0x0e, 0xc8, 0x26, 0x8e, 0x83, 0x39, 0x25, 0x0e, 0x5a, 0xe5, 0x10, 0xe2, - 0x09, 0x70, 0xa3, 0x24, 0x35, 0xed, 0x0d, 0x54, 0x12, 0x93, 0xa8, 0xcb, 0xc2, 0x44, 0x8a, 0x6f, - 0x2c, 0xfb, 0x39, 0x5a, 0x19, 0xaa, 0x7a, 0xcd, 0xb0, 0xa4, 0xc2, 0xa4, 0xc2, 0xbe, 0x8f, 0xfe, - 0xe1, 0x20, 0x58, 0x38, 0x86, 0x63, 0xa5, 0xcb, 0x29, 0x6a, 0x8d, 0xeb, 0xc6, 0x77, 0x44, 0x23, - 0xb0, 0xef, 0x21, 0xc4, 0xe1, 0x74, 0x04, 0x42, 0xaa, 0xe1, 0xac, 0x24, 0x4d, 0x18, 0x4f, 0x2b, - 0xa8, 0xff, 0xb2, 0x50, 0xc5, 0x34, 0xd1, 0x6a, 0xee, 0x2d, 0xd5, 0x87, 0x83, 0x56, 0x13, 0xe5, - 0xc2, 0xc9, 0xd7, 0x0a, 0x2a, 0x62, 0x4c, 0x35, 0x6c, 0xad, 0x4b, 0x38, 0x05, 0x15, 0x58, 0x72, - 0xd8, 0x49, 0xc9, 0xdf, 0xf7, 0x62, 0x6f, 0xa1, 0x32, 0x09, 0x29, 0xc4, 0x3a, 0x5a, 0xaa, 0x59, - 0x8d, 0x82, 0xbf, 0x96, 0x38, 0x5a, 0x41, 0xfd, 0x08, 0x6d, 0xe8, 0xc6, 0x4c, 0xa7, 0xbb, 0x64, - 0xd0, 0x19, 0x11, 0x02, 0x42, 0x28, 0x54, 0x4c, 0x06, 0xc7, 0x1c, 0xc4, 0x28, 0x94, 0xa6, 0xd9, - 0x32, 0x26, 0x03, 0x5f, 0x3b, 0xae, 0xa3, 0xe6, 0x17, 0x50, 0xdb, 0xa8, 0xb2, 0x80, 0x7a, 0xc0, - 0x39, 0xe3, 0xaa, 0x48, 0x61, 0x82, 0x32, 0x0c, 0xe4, 0x1a, 0x9e, 0x0b, 0x66, 0x23, 0xbe, 0x40, - 0x5b, 0xf3, 0x88, 0x3e, 0x88, 0x21, 0x8b, 0x85, 0xee, 0x9f, 0x8d, 0x16, 0xd4, 0x58, 0x0b, 0xb5, - 0x5f, 0x92, 0x03, 0xd1, 0xff, 0xe2, 0x6b, 0x80, 0xe5, 0xd6, 0xd2, 0x46, 0x45, 0x75, 0x97, 0x66, - 0x29, 0xf5, 0x6f, 0xbb, 0x82, 0x56, 0x4e, 0x47, 0x4c, 0x9a, 0x95, 0xf4, 0x13, 0x63, 0xb6, 0xa8, - 0xc5, 0xdb, 0x2e, 0x6a, 0xfd, 0xab, 0x85, 0xfe, 0xd7, 0xca, 0xd8, 0x98, 0x06, 0xc0, 0xe7, 0x84, - 0x6d, 0xa2, 0xb5, 0xa1, 0xf1, 0xa6, 0x83, 0x4a, 0xed, 0x79, 0xd1, 0xf9, 0xac, 0x5b, 0x2a, 0xdc, - 0x7c, 0x4b, 0xb7, 0x97, 0xf8, 0x31, 0x91, 0xb8, 0xc7, 0x68, 0xac, 0x66, 0x30, 0x27, 0x71, 0x46, - 0x66, 0xdd, 0x4c, 0x96, 0xbf, 0xf5, 0xe1, 0xfe, 0xf9, 0x65, 0x79, 0x8b, 0xfe, 0xd3, 0xcc, 0x1d, - 0x90, 0x1d, 0xc9, 0x78, 0xf2, 0xd0, 0x09, 0x7b, 0x77, 0x7a, 0x5e, 0x56, 0xad, 0xd0, 0x58, 0x7f, - 0xf2, 0xc8, 0xcd, 0x7a, 0x87, 0xdd, 0x59, 0x59, 0x47, 0x62, 0x09, 0xe9, 0x91, 0xd5, 0xdf, 0x20, - 0x3b, 0x45, 0x6e, 0x4f, 0x64, 0xdf, 0x00, 0xbf, 0x5a, 0x00, 0x6e, 0x64, 0x03, 0x4f, 0xab, 0xae, - 0xe3, 0x8e, 0x51, 0x3d, 0xc5, 0x9d, 0x3e, 0xcf, 0xfb, 0x58, 0xe2, 0x8e, 0xe4, 0x80, 0x23, 0x61, - 0x78, 0xda, 0x0b, 0x3c, 0xcf, 0xb2, 0x79, 0x32, 0x51, 0xae, 0xf1, 0x36, 0x4f, 0xce, 0x2e, 0xab, - 0xd6, 0xf9, 0x65, 0xd5, 0xfa, 0x79, 0x59, 0xb5, 0x3e, 0x5f, 0x55, 0x73, 0xe7, 0x57, 0xd5, 0xdc, - 0xf7, 0xab, 0x6a, 0xee, 0xdd, 0x61, 0x8f, 0xca, 0xfe, 0xa8, 0xeb, 0x12, 0x16, 0x79, 0xad, 0x94, - 0xe5, 0x10, 0x77, 0x85, 0x37, 0xe5, 0x7c, 0x4c, 0x18, 0x87, 0x79, 0x53, 0x71, 0x7a, 0x11, 0x0b, - 0x46, 0x21, 0x88, 0xf4, 0x4b, 0x24, 0x27, 0x43, 0x10, 0xdd, 0x92, 0xfe, 0x02, 0x3d, 0xfd, 0x1d, - 0x00, 0x00, 0xff, 0xff, 0x82, 0x00, 0xff, 0xbc, 0x21, 0x07, 0x00, 0x00, + // 720 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcf, 0x6f, 0x12, 0x4f, + 0x14, 0x67, 0x80, 0xd2, 0x32, 0xfd, 0x5e, 0xbe, 0x2b, 0xd6, 0x4d, 0xab, 0x14, 0x31, 0x26, 0x78, + 0x70, 0x37, 0xd5, 0x8b, 0x3f, 0x12, 0x63, 0x69, 0x6b, 0x42, 0xd2, 0x43, 0xb3, 0x34, 0xa6, 0xf1, + 0xd2, 0x0c, 0xb3, 0xaf, 0xb0, 0xb2, 0xbb, 0x43, 0x67, 0x06, 0x0c, 0xff, 0x81, 0xc7, 0xde, 0xbc, + 0xfa, 0xd7, 0x98, 0x1e, 0x7b, 0x34, 0x1e, 0x1a, 0xd3, 0xde, 0xfc, 0x2b, 0xcc, 0xcc, 0xce, 0x02, + 0x25, 0xd0, 0xd0, 0x78, 0xe3, 0xfd, 0xfa, 0x7c, 0x3e, 0xef, 0xf1, 0xde, 0x2c, 0x7e, 0x1a, 0xc4, + 0x9f, 0x81, 0xca, 0x60, 0x00, 0x2e, 0xe3, 0x84, 0x86, 0xe0, 0x0e, 0xb6, 0x5a, 0x20, 0xc9, 0x96, + 0x0b, 0x03, 0x88, 0xa5, 0x70, 0x7a, 0x9c, 0x49, 0x66, 0xd9, 0xa3, 0x34, 0x27, 0x49, 0x73, 0x4c, + 0xda, 0x7a, 0xa9, 0xcd, 0xda, 0x4c, 0x27, 0xb9, 0xea, 0x57, 0x92, 0xbf, 0x5e, 0xa6, 0x4c, 0x44, + 0x4c, 0xb8, 0x2d, 0x22, 0xc6, 0x88, 0x94, 0x05, 0xb1, 0x89, 0xcf, 0xa7, 0x35, 0xf0, 0x3a, 0xad, + 0x7a, 0x86, 0xf0, 0x5a, 0x13, 0xe4, 0x4e, 0x87, 0x04, 0x71, 0x18, 0xc4, 0xdd, 0x03, 0x1e, 0x50, + 0xd8, 0x53, 0xc2, 0xac, 0x07, 0x78, 0xf9, 0x04, 0xc0, 0x3f, 0x0e, 0x7c, 0x1b, 0x55, 0x50, 0xad, + 0xe8, 0x15, 0x94, 0xd9, 0xf0, 0xad, 0xb7, 0xb8, 0x40, 0x62, 0xf1, 0x05, 0xb8, 0x9d, 0x55, 0xfe, + 0xfa, 0x93, 0xf3, 0xcb, 0xcd, 0xcc, 0xaf, 0xcb, 0xcd, 0x8d, 0x44, 0x92, 0xf0, 0xbb, 0x4e, 0xc0, + 0xdc, 0x88, 0xc8, 0x8e, 0xb3, 0x0f, 0x6d, 0x42, 0x87, 0xbb, 0x40, 0x3d, 0x53, 0x62, 0x3d, 0xc4, + 0x45, 0x19, 0x44, 0x20, 0x24, 0x89, 0x7a, 0x76, 0xae, 0x82, 0x6a, 0x79, 0x6f, 0xec, 0x78, 0x93, + 0xb5, 0x51, 0xf5, 0x07, 0xc2, 0xff, 0x37, 0x41, 0xd6, 0x49, 0xec, 0x4f, 0xa8, 0xb1, 0xf1, 0x32, + 0x87, 0x90, 0x0c, 0x81, 0x1b, 0x35, 0xa9, 0x69, 0xad, 0xe1, 0x82, 0x18, 0x46, 0x2d, 0x16, 0x26, + 0x72, 0x3c, 0x63, 0x59, 0xaf, 0xf1, 0x52, 0x4f, 0xd5, 0x6b, 0x96, 0x05, 0x55, 0x26, 0x15, 0xd6, + 0x63, 0xfc, 0x1f, 0x07, 0xc1, 0xc2, 0x01, 0x1c, 0x2b, 0x6d, 0x76, 0x5e, 0xeb, 0x5c, 0x35, 0xbe, + 0xc3, 0x20, 0x02, 0xeb, 0x11, 0xc6, 0x1c, 0x4e, 0xfb, 0x20, 0xa4, 0x1a, 0xd0, 0x52, 0xd2, 0x88, + 0xf1, 0x34, 0x7c, 0xdd, 0xc8, 0x1f, 0x84, 0x4b, 0xa6, 0x91, 0x46, 0x7d, 0x67, 0xa1, 0x5e, 0x6c, + 0xbc, 0x9c, 0xa8, 0x17, 0x76, 0xb6, 0x92, 0x53, 0x11, 0x63, 0xaa, 0xa1, 0x6b, 0x6d, 0xc2, 0xce, + 0xa9, 0xc0, 0x82, 0x43, 0x4f, 0x4a, 0xfe, 0xbd, 0x1f, 0x6b, 0x03, 0x17, 0x69, 0x18, 0x40, 0xac, + 0xa3, 0x85, 0x0a, 0xaa, 0xe5, 0xbc, 0x95, 0xc4, 0x61, 0x9a, 0x3d, 0xc2, 0x6b, 0xba, 0x39, 0xd3, + 0xed, 0x36, 0xed, 0x36, 0xfb, 0x94, 0x82, 0x10, 0x0a, 0x99, 0xd0, 0xee, 0x31, 0x07, 0xd1, 0x0f, + 0xa5, 0x69, 0xb8, 0x48, 0x68, 0xd7, 0xd3, 0x8e, 0x9b, 0xc8, 0xd9, 0x19, 0xc8, 0x87, 0xb8, 0x34, + 0x85, 0xbc, 0xc7, 0x39, 0xe3, 0xaa, 0x50, 0xe1, 0x82, 0x32, 0x0c, 0xec, 0x0a, 0x99, 0x08, 0xde, + 0x8e, 0xfa, 0x0e, 0x6f, 0x4c, 0xa2, 0x7a, 0x20, 0x7a, 0x2c, 0x16, 0x7a, 0x16, 0xac, 0x3f, 0xa5, + 0x0a, 0xcd, 0xa8, 0xff, 0x96, 0x1c, 0x8e, 0xfe, 0x57, 0x3f, 0x00, 0x2c, 0xb6, 0xaa, 0x16, 0xce, + 0xab, 0x7b, 0x35, 0x8b, 0xaa, 0x7f, 0x5b, 0x25, 0xbc, 0x74, 0xda, 0x67, 0xd2, 0xac, 0xa9, 0x97, + 0x18, 0xe3, 0xe5, 0xcd, 0xdf, 0x75, 0x79, 0xab, 0xdf, 0x11, 0xbe, 0xaf, 0x95, 0xb1, 0x41, 0xe0, + 0x03, 0x9f, 0x10, 0xb6, 0x8e, 0x57, 0x7a, 0xc6, 0x9b, 0x0e, 0x2c, 0xb5, 0x27, 0x45, 0x67, 0xe7, + 0xdd, 0x57, 0x6e, 0xf6, 0x7d, 0xdd, 0x5d, 0xe2, 0xd7, 0x44, 0xe2, 0x0e, 0x0b, 0x62, 0x35, 0x83, + 0x09, 0x89, 0x63, 0x32, 0x34, 0x9b, 0x2c, 0x7b, 0xe7, 0x63, 0xbe, 0xf5, 0xc5, 0xa9, 0x1e, 0xe1, + 0x7b, 0x9a, 0xb9, 0x09, 0xb2, 0x29, 0x19, 0x4f, 0x1e, 0x40, 0x61, 0x6d, 0x8f, 0xce, 0x0d, 0x55, + 0x72, 0xb5, 0xd5, 0x17, 0xcf, 0x9c, 0x79, 0xef, 0xb3, 0x33, 0x2e, 0x6b, 0x4a, 0x22, 0x21, 0x3d, + 0xba, 0xea, 0x47, 0x6c, 0xa5, 0xc8, 0x07, 0x43, 0xd9, 0x31, 0xc0, 0xef, 0xa7, 0x80, 0x6b, 0xf3, + 0x81, 0x47, 0x55, 0x37, 0x71, 0x07, 0xb8, 0x9a, 0xe2, 0x8e, 0x9e, 0xed, 0x5d, 0x22, 0x49, 0x53, + 0x72, 0x20, 0x91, 0x30, 0x3c, 0x07, 0x53, 0x3c, 0xaf, 0xe6, 0xf3, 0xcc, 0x45, 0xb9, 0xc1, 0x5b, + 0x3f, 0x39, 0xbf, 0x2a, 0xa3, 0x8b, 0xab, 0x32, 0xfa, 0x7d, 0x55, 0x46, 0x67, 0xd7, 0xe5, 0xcc, + 0xc5, 0x75, 0x39, 0xf3, 0xf3, 0xba, 0x9c, 0xf9, 0xb4, 0xdf, 0x0e, 0x64, 0xa7, 0xdf, 0x72, 0x28, + 0x8b, 0xdc, 0x46, 0xca, 0xb2, 0x4f, 0x5a, 0xc2, 0x1d, 0x71, 0x3e, 0xa7, 0x8c, 0xc3, 0xa4, 0xa9, + 0x38, 0xdd, 0x88, 0xf9, 0xfd, 0x10, 0x44, 0xfa, 0x85, 0x92, 0xc3, 0x1e, 0x88, 0x56, 0x41, 0x7f, + 0x99, 0x5e, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x3c, 0x30, 0xd4, 0x39, 0x07, 0x00, 0x00, } func (m *SetChainlinkPriceEvent) Marshal() (dAtA []byte, err error) { diff --git a/chain/oracle/types/genesis.pb.go b/chain/oracle/types/genesis.pb.go index 6b5d440c..5e5e9a8c 100644 --- a/chain/oracle/types/genesis.pb.go +++ b/chain/oracle/types/genesis.pb.go @@ -37,7 +37,7 @@ type GenesisState struct { BandIbcLatestClientId uint64 `protobuf:"varint,9,opt,name=band_ibc_latest_client_id,json=bandIbcLatestClientId,proto3" json:"band_ibc_latest_client_id,omitempty"` // Deprecated: Do not use. CalldataRecords []*CalldataRecord `protobuf:"bytes,10,rep,name=calldata_records,json=calldataRecords,proto3" json:"calldata_records,omitempty"` // Deprecated: Do not use. BandIbcLatestRequestId uint64 `protobuf:"varint,11,opt,name=band_ibc_latest_request_id,json=bandIbcLatestRequestId,proto3" json:"band_ibc_latest_request_id,omitempty"` // Deprecated: Do not use. - ChainlinkPriceStates []*ChainlinkPriceState `protobuf:"bytes,12,rep,name=chainlink_price_states,json=chainlinkPriceStates,proto3" json:"chainlink_price_states,omitempty"` + ChainlinkPriceStates []*ChainlinkPriceState `protobuf:"bytes,12,rep,name=chainlink_price_states,json=chainlinkPriceStates,proto3" json:"chainlink_price_states,omitempty"` // Deprecated: Do not use. HistoricalPriceRecords []*PriceRecords `protobuf:"bytes,13,rep,name=historical_price_records,json=historicalPriceRecords,proto3" json:"historical_price_records,omitempty"` ProviderStates []*ProviderState `protobuf:"bytes,14,rep,name=provider_states,json=providerStates,proto3" json:"provider_states,omitempty"` PythPriceStates []*PythPriceState `protobuf:"bytes,15,rep,name=pyth_price_states,json=pythPriceStates,proto3" json:"pyth_price_states,omitempty"` @@ -164,6 +164,7 @@ func (m *GenesisState) GetBandIbcLatestRequestId() uint64 { return 0 } +// Deprecated: Do not use. func (m *GenesisState) GetChainlinkPriceStates() []*ChainlinkPriceState { if m != nil { return m.ChainlinkPriceStates @@ -275,53 +276,53 @@ func init() { } var fileDescriptor_f7e14cf80151b4d2 = []byte{ - // 734 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x4f, 0xdb, 0x4e, - 0x10, 0x8d, 0x21, 0xbf, 0xfc, 0x60, 0x09, 0x24, 0x6c, 0x81, 0xba, 0xa9, 0x14, 0x22, 0xaa, 0x42, - 0x50, 0x4b, 0x2c, 0xe8, 0xa5, 0x87, 0x8a, 0x43, 0x52, 0xb5, 0x8a, 0x84, 0x54, 0x64, 0x2a, 0x51, - 0xf5, 0xe2, 0xae, 0xd7, 0x4b, 0xbc, 0xad, 0x63, 0xbb, 0xbb, 0x1b, 0xa4, 0x7c, 0x81, 0x5e, 0x7a, - 0xe9, 0xc7, 0xe2, 0xc8, 0xb1, 0xa7, 0xaa, 0x82, 0x2f, 0x52, 0xed, 0xfa, 0x4f, 0xbc, 0xa0, 0x24, - 0x55, 0x6f, 0x9e, 0xf1, 0xcc, 0x7b, 0x6f, 0xc6, 0x6f, 0xbd, 0x60, 0x97, 0x86, 0x9f, 0x09, 0x16, - 0xf4, 0x92, 0x58, 0x11, 0x43, 0x38, 0x20, 0xd6, 0xe5, 0xa1, 0x4b, 0x04, 0x3a, 0xb4, 0x06, 0x24, - 0x24, 0x9c, 0xf2, 0x4e, 0xcc, 0x22, 0x11, 0x41, 0x33, 0xaf, 0xeb, 0x24, 0x75, 0x9d, 0xb4, 0xae, - 0xf1, 0x74, 0x2a, 0x42, 0x5a, 0xa8, 0x00, 0x1a, 0x1b, 0x83, 0x68, 0x10, 0xa9, 0x47, 0x4b, 0x3e, - 0x25, 0xd9, 0x9d, 0xef, 0x55, 0x50, 0x7d, 0x9b, 0x10, 0x9d, 0x09, 0x24, 0x08, 0x3c, 0x06, 0x95, - 0x18, 0x31, 0x34, 0xe4, 0xa6, 0xd1, 0x32, 0xda, 0x2b, 0x47, 0xad, 0xce, 0x34, 0xe2, 0xce, 0xa9, - 0xaa, 0xeb, 0x96, 0xaf, 0x7e, 0x6d, 0x97, 0xec, 0xb4, 0x0b, 0xee, 0x81, 0x55, 0x17, 0x85, 0x9e, - 0xc3, 0x48, 0x80, 0xc6, 0x84, 0x71, 0x73, 0xa1, 0xb5, 0xd8, 0x5e, 0xee, 0x2e, 0x98, 0x86, 0x5d, - 0x95, 0x2f, 0xec, 0x34, 0x0f, 0x3f, 0x80, 0x75, 0x55, 0x18, 0x33, 0x8a, 0x89, 0xc3, 0x25, 0x39, - 0x37, 0x17, 0x5b, 0x8b, 0xed, 0x95, 0xa3, 0xf6, 0x74, 0xce, 0x2e, 0x0a, 0xbd, 0x53, 0xd9, 0xa1, - 0xd4, 0x2a, 0xd8, 0x9a, 0xab, 0xe5, 0x38, 0x74, 0xc0, 0xc3, 0x04, 0xf4, 0x82, 0x90, 0x3b, 0xf8, - 0xe5, 0x79, 0xf8, 0x0a, 0xe7, 0x0d, 0x21, 0x9e, 0xc2, 0xb2, 0x37, 0xe2, 0x2c, 0x2e, 0x12, 0x7c, - 0x02, 0x9b, 0x38, 0xa2, 0xa1, 0x8b, 0x38, 0xd1, 0xe1, 0xff, 0x53, 0xf0, 0xcf, 0xa7, 0xc3, 0xf7, - 0xd2, 0xb6, 0x09, 0x9a, 0xfd, 0x00, 0xdf, 0xcb, 0xc9, 0x11, 0x36, 0xd5, 0x72, 0xa8, 0x8b, 0x75, - 0x86, 0xca, 0x3f, 0x2c, 0x08, 0x4a, 0xa8, 0xbe, 0x8b, 0x8b, 0x04, 0x3e, 0x30, 0x73, 0x82, 0x04, - 0xc1, 0x61, 0xe4, 0xeb, 0x88, 0x70, 0xc1, 0xcd, 0xff, 0x15, 0xc7, 0xb3, 0xd9, 0x1c, 0xef, 0x54, - 0xca, 0x4e, 0x7a, 0x14, 0xcd, 0x66, 0x4a, 0xa3, 0xbd, 0xe1, 0xf0, 0x1c, 0xd4, 0x26, 0xa3, 0x24, - 0xce, 0x5a, 0x52, 0xce, 0xda, 0x9b, 0x4d, 0xd0, 0xef, 0xf6, 0x52, 0x83, 0x55, 0xa4, 0xc1, 0x4c, - 0xc3, 0x5e, 0xcd, 0xe6, 0x48, 0x9c, 0xf6, 0x0a, 0x3c, 0xca, 0x81, 0x03, 0x39, 0x94, 0x70, 0x70, - 0x40, 0x49, 0x28, 0x1c, 0xea, 0x99, 0xcb, 0x2d, 0xa3, 0x5d, 0xd6, 0x64, 0x9d, 0xa8, 0x92, 0x9e, - 0xaa, 0xe8, 0x7b, 0xf0, 0x1c, 0xd4, 0x31, 0x0a, 0x02, 0x0f, 0x09, 0xe4, 0x30, 0x82, 0x23, 0xe6, - 0x71, 0x13, 0xcc, 0x5b, 0x6e, 0x2f, 0xed, 0xb0, 0x55, 0x43, 0xe2, 0x3e, 0xac, 0xe5, 0x38, 0x3c, - 0x06, 0x8d, 0xbb, 0xb2, 0xd2, 0xcd, 0x4a, 0x5d, 0x2b, 0xb9, 0xae, 0x2d, 0x4d, 0x57, 0xba, 0xae, - 0xbe, 0x07, 0x31, 0xd8, 0xc2, 0x3e, 0xa2, 0x61, 0x40, 0xc3, 0x2f, 0xfa, 0xb7, 0xaf, 0x2a, 0x79, - 0x07, 0x33, 0xe4, 0x65, 0x7d, 0x05, 0x7b, 0x6d, 0xe0, 0xfb, 0x49, 0xe9, 0x60, 0xd3, 0xa7, 0x5c, - 0x44, 0x8c, 0x62, 0x14, 0xa4, 0x2c, 0xd9, 0x16, 0x56, 0x15, 0xcd, 0xee, 0x9c, 0x33, 0x92, 0x8e, - 0x6b, 0x6f, 0x4d, 0x70, 0x8a, 0x79, 0x78, 0x0a, 0x6a, 0x31, 0x8b, 0x2e, 0xa9, 0x47, 0x58, 0xa6, - 0x7f, 0x4d, 0x01, 0xef, 0xcd, 0x02, 0x4e, 0x1a, 0x12, 0xe5, 0x6b, 0x71, 0x31, 0xe4, 0xf0, 0x3d, - 0x58, 0x8f, 0xc7, 0xc2, 0xd7, 0x77, 0x52, 0x9b, 0x7b, 0xa0, 0xc7, 0xc2, 0x2f, 0xac, 0xa3, 0x16, - 0x6b, 0xb1, 0xb4, 0x27, 0x94, 0xfa, 0xef, 0xac, 0xba, 0xae, 0x60, 0xf7, 0xa7, 0xc3, 0x9e, 0xc9, - 0x9e, 0x02, 0x6e, 0x9d, 0xeb, 0x09, 0x0e, 0xf7, 0x41, 0x3d, 0x05, 0x1e, 0xb9, 0x01, 0xe5, 0xbe, - 0xfc, 0x17, 0xae, 0xcb, 0x7f, 0xa1, 0x5d, 0x4b, 0x6a, 0xf3, 0x34, 0xfc, 0x66, 0x80, 0x27, 0x93, - 0x6f, 0xae, 0x2c, 0xc9, 0x05, 0x23, 0x68, 0xc8, 0x75, 0x55, 0x50, 0xa9, 0x7a, 0xf9, 0x17, 0x06, - 0x78, 0x8d, 0x04, 0x3a, 0x4b, 0x20, 0x0a, 0x22, 0xb7, 0xf1, 0xcc, 0xf7, 0x7c, 0xa7, 0x0f, 0xd6, - 0x74, 0x8b, 0xc3, 0xc7, 0x60, 0x79, 0x72, 0xa8, 0xe4, 0x8d, 0x50, 0xb6, 0x97, 0x70, 0x76, 0x86, - 0x1a, 0x60, 0x29, 0x73, 0xbf, 0xb9, 0xd0, 0x32, 0xda, 0x55, 0x3b, 0x8f, 0xbb, 0x17, 0x57, 0x37, - 0x4d, 0xe3, 0xfa, 0xa6, 0x69, 0xfc, 0xbe, 0x69, 0x1a, 0x3f, 0x6e, 0x9b, 0xa5, 0xeb, 0xdb, 0x66, - 0xe9, 0xe7, 0x6d, 0xb3, 0xf4, 0xf1, 0x64, 0x40, 0x85, 0x3f, 0x72, 0x3b, 0x38, 0x1a, 0x5a, 0xfd, - 0x6c, 0x92, 0x13, 0xe4, 0x72, 0x2b, 0x9f, 0xeb, 0x00, 0x47, 0x8c, 0x14, 0x43, 0xa9, 0xdb, 0x1a, - 0x46, 0xde, 0x28, 0x20, 0x3c, 0xbb, 0xe5, 0xc4, 0x38, 0x26, 0xdc, 0xad, 0xa8, 0x7b, 0xec, 0xc5, - 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xa9, 0x50, 0x8f, 0x48, 0x07, 0x00, 0x00, + // 736 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4d, 0x4f, 0xdb, 0x4a, + 0x14, 0x8d, 0x21, 0x2f, 0x0f, 0x86, 0x40, 0xc2, 0x3c, 0xe0, 0xf9, 0xe5, 0x49, 0x21, 0xa2, 0x2a, + 0x04, 0xb5, 0xc4, 0x82, 0x6e, 0xba, 0xa8, 0x58, 0x24, 0x55, 0xab, 0x48, 0x48, 0x45, 0xa6, 0x12, + 0x55, 0x37, 0xee, 0x78, 0x3c, 0xc4, 0xd3, 0x3a, 0xb6, 0x3b, 0x33, 0x41, 0xca, 0x1f, 0xe8, 0xb6, + 0xfd, 0x59, 0x2c, 0x59, 0x76, 0x55, 0x55, 0xf0, 0x47, 0xaa, 0x19, 0x7f, 0xc4, 0x13, 0x94, 0xa4, + 0xea, 0xce, 0x73, 0xe7, 0xde, 0x73, 0xce, 0xbd, 0x3e, 0xd7, 0x06, 0xfb, 0x34, 0xfc, 0x48, 0xb0, + 0xa0, 0xd7, 0xc4, 0x8a, 0x18, 0xc2, 0x01, 0xb1, 0xae, 0x8f, 0x5d, 0x22, 0xd0, 0xb1, 0x35, 0x20, + 0x21, 0xe1, 0x94, 0x77, 0x62, 0x16, 0x89, 0x08, 0x9a, 0x79, 0x5e, 0x27, 0xc9, 0xeb, 0xa4, 0x79, + 0x8d, 0xc7, 0x33, 0x11, 0xd2, 0x44, 0x05, 0xd0, 0xd8, 0x1a, 0x44, 0x83, 0x48, 0x3d, 0x5a, 0xf2, + 0x29, 0x89, 0xee, 0x7d, 0xad, 0x82, 0xea, 0xeb, 0x84, 0xe8, 0x42, 0x20, 0x41, 0xe0, 0x29, 0xa8, + 0xc4, 0x88, 0xa1, 0x21, 0x37, 0x8d, 0x96, 0xd1, 0x5e, 0x3b, 0x69, 0x75, 0x66, 0x11, 0x77, 0xce, + 0x55, 0x5e, 0xb7, 0x7c, 0xf3, 0x63, 0xb7, 0x64, 0xa7, 0x55, 0xf0, 0x00, 0xac, 0xbb, 0x28, 0xf4, + 0x1c, 0x46, 0x02, 0x34, 0x26, 0x8c, 0x9b, 0x4b, 0xad, 0xe5, 0xf6, 0x6a, 0x77, 0xc9, 0x34, 0xec, + 0xaa, 0xbc, 0xb0, 0xd3, 0x38, 0x7c, 0x07, 0x36, 0x55, 0x62, 0xcc, 0x28, 0x26, 0x0e, 0x97, 0xe4, + 0xdc, 0x5c, 0x6e, 0x2d, 0xb7, 0xd7, 0x4e, 0xda, 0xb3, 0x39, 0xbb, 0x28, 0xf4, 0xce, 0x65, 0x85, + 0x52, 0xab, 0x60, 0x6b, 0xae, 0x16, 0xe3, 0xd0, 0x01, 0xff, 0x26, 0xa0, 0x57, 0x84, 0x4c, 0xe1, + 0x97, 0x17, 0xe1, 0x2b, 0x9c, 0x57, 0x84, 0x78, 0x0a, 0xcb, 0xde, 0x8a, 0xb3, 0x73, 0x91, 0xe0, + 0x03, 0xd8, 0xc6, 0x11, 0x0d, 0x5d, 0xc4, 0x89, 0x0e, 0xff, 0x97, 0x82, 0x7f, 0x3a, 0x1b, 0xbe, + 0x97, 0x96, 0x4d, 0xd0, 0xec, 0x7f, 0xf0, 0x83, 0x98, 0x6c, 0x61, 0x5b, 0x0d, 0x87, 0xba, 0x58, + 0x67, 0xa8, 0xfc, 0xc1, 0x80, 0xa0, 0x84, 0xea, 0xbb, 0xb8, 0x48, 0xe0, 0x03, 0x33, 0x27, 0x48, + 0x10, 0x1c, 0x46, 0x3e, 0x8f, 0x08, 0x17, 0xdc, 0xfc, 0x5b, 0x71, 0x3c, 0x99, 0xcf, 0xf1, 0x46, + 0x85, 0xec, 0xa4, 0x46, 0xd1, 0x6c, 0xa7, 0x34, 0xda, 0x0d, 0x87, 0x97, 0xa0, 0x36, 0x69, 0x25, + 0x71, 0xd6, 0x8a, 0x72, 0xd6, 0xc1, 0x7c, 0x82, 0x7e, 0xb7, 0x97, 0x1a, 0xac, 0x22, 0x0d, 0x66, + 0x1a, 0xf6, 0x7a, 0xd6, 0x47, 0xe2, 0xb4, 0x17, 0xe0, 0xbf, 0x1c, 0x38, 0x90, 0x4d, 0x09, 0x07, + 0x07, 0x94, 0x84, 0xc2, 0xa1, 0x9e, 0xb9, 0xda, 0x32, 0xda, 0x65, 0x4d, 0xd6, 0x99, 0x4a, 0xe9, + 0xa9, 0x8c, 0xbe, 0x07, 0x2f, 0x41, 0x1d, 0xa3, 0x20, 0xf0, 0x90, 0x40, 0x0e, 0x23, 0x38, 0x62, + 0x1e, 0x37, 0xc1, 0xa2, 0xe1, 0xf6, 0xd2, 0x0a, 0x5b, 0x15, 0x24, 0xee, 0xc3, 0x5a, 0x8c, 0xc3, + 0x53, 0xd0, 0x98, 0x96, 0x95, 0x4e, 0x56, 0xea, 0x5a, 0xcb, 0x75, 0xed, 0x68, 0xba, 0xd2, 0x71, + 0xf5, 0x3d, 0x38, 0x00, 0x3b, 0xd8, 0x47, 0x34, 0x0c, 0x68, 0xf8, 0x49, 0x7f, 0xf7, 0x55, 0x25, + 0xef, 0x68, 0x8e, 0xbc, 0xac, 0x6e, 0xca, 0x00, 0x5b, 0xf8, 0xe1, 0x85, 0x74, 0xb1, 0xe9, 0x53, + 0x2e, 0x22, 0x46, 0x31, 0x0a, 0x52, 0xa6, 0x6c, 0x12, 0xeb, 0x8a, 0x6a, 0x7f, 0xc1, 0x9e, 0xa4, + 0x2d, 0xdb, 0x3b, 0x13, 0x9c, 0x62, 0x1c, 0x9e, 0x83, 0x5a, 0xcc, 0xa2, 0x6b, 0xea, 0x11, 0x96, + 0xf5, 0xb0, 0xa1, 0x80, 0x0f, 0xe6, 0x01, 0x27, 0x05, 0xc9, 0x72, 0x6c, 0xc4, 0xc5, 0x23, 0x87, + 0x6f, 0xc1, 0x66, 0x3c, 0x16, 0xbe, 0x3e, 0x97, 0xda, 0xc2, 0xa5, 0x1e, 0x0b, 0xbf, 0xb0, 0x71, + 0xb5, 0x58, 0x3b, 0x4b, 0x8b, 0x42, 0xa9, 0x7f, 0x6a, 0xdc, 0x75, 0x05, 0x7b, 0x38, 0x1b, 0xf6, + 0x42, 0xd6, 0x14, 0x70, 0xeb, 0x5c, 0x0f, 0x70, 0x78, 0x08, 0xea, 0x29, 0xf0, 0xc8, 0x0d, 0x28, + 0xf7, 0xe5, 0xf7, 0x70, 0x53, 0x7e, 0x0f, 0xed, 0x5a, 0x92, 0x9b, 0x87, 0xe1, 0x17, 0x03, 0x3c, + 0x9a, 0xbc, 0x77, 0x65, 0x4b, 0x2e, 0x18, 0x41, 0x43, 0xae, 0xab, 0x82, 0x4a, 0xd5, 0xf3, 0xdf, + 0x30, 0xc1, 0x4b, 0x24, 0xd0, 0x45, 0x02, 0x51, 0x10, 0xb9, 0x8b, 0xe7, 0xde, 0xf3, 0xbd, 0x3e, + 0xd8, 0xd0, 0x6d, 0x0e, 0xff, 0x07, 0xab, 0x93, 0xc5, 0x92, 0x7f, 0x85, 0xb2, 0xbd, 0x82, 0xb3, + 0x3d, 0x6a, 0x80, 0x95, 0x6c, 0x03, 0xcc, 0xa5, 0x96, 0xd1, 0xae, 0xda, 0xf9, 0xb9, 0x7b, 0x75, + 0x73, 0xd7, 0x34, 0x6e, 0xef, 0x9a, 0xc6, 0xcf, 0xbb, 0xa6, 0xf1, 0xed, 0xbe, 0x59, 0xba, 0xbd, + 0x6f, 0x96, 0xbe, 0xdf, 0x37, 0x4b, 0xef, 0xcf, 0x06, 0x54, 0xf8, 0x23, 0xb7, 0x83, 0xa3, 0xa1, + 0xd5, 0xcf, 0x3a, 0x39, 0x43, 0x2e, 0xb7, 0xf2, 0xbe, 0x8e, 0x70, 0xc4, 0x48, 0xf1, 0x28, 0x75, + 0x5b, 0xc3, 0xc8, 0x1b, 0x05, 0x84, 0x67, 0x7f, 0x3a, 0x31, 0x8e, 0x09, 0x77, 0x2b, 0xea, 0x5f, + 0xf6, 0xec, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x20, 0xd4, 0xad, 0x27, 0x4c, 0x07, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/chain/oracle/types/oracle.go b/chain/oracle/types/oracle.go index 332c8c8e..8fa4b37d 100644 --- a/chain/oracle/types/oracle.go +++ b/chain/oracle/types/oracle.go @@ -109,6 +109,10 @@ func (s SymbolPriceTimestamps) GetTimestamp(oracleType OracleType, symbol string // CheckPriceFeedThreshold returns true if the newPrice has changed beyond 100x or less than 1% of the last price func CheckPriceFeedThreshold(lastPrice, newPrice math.LegacyDec) bool { + if !lastPrice.IsPositive() { + return false + } + return newPrice.GT(lastPrice.Mul(math.LegacyNewDec(100))) || newPrice.LT(lastPrice.Quo(math.LegacyNewDec(100))) } diff --git a/chain/oracle/types/oracle.pb.go b/chain/oracle/types/oracle.pb.go index c121438f..89d1da81 100644 --- a/chain/oracle/types/oracle.pb.go +++ b/chain/oracle/types/oracle.pb.go @@ -36,7 +36,7 @@ const ( OracleType_Band OracleType = 1 // Deprecated: Do not use. OracleType_PriceFeed OracleType = 2 OracleType_Coinbase OracleType = 3 - OracleType_Chainlink OracleType = 4 + OracleType_Chainlink OracleType = 4 // Deprecated: Do not use. OracleType_Razor OracleType = 5 OracleType_Dia OracleType = 6 OracleType_API3 OracleType = 7 @@ -91,10 +91,9 @@ func (OracleType) EnumDescriptor() ([]byte, []int) { } type Params struct { - PythContract string `protobuf:"bytes,1,opt,name=pyth_contract,json=pythContract,proto3" json:"pyth_contract,omitempty"` - ChainlinkVerifierProxyContract string `protobuf:"bytes,2,opt,name=chainlink_verifier_proxy_contract,json=chainlinkVerifierProxyContract,proto3" json:"chainlink_verifier_proxy_contract,omitempty"` - AcceptUnverifiedChainlinkDataStreamsReports bool `protobuf:"varint,3,opt,name=accept_unverified_chainlink_data_streams_reports,json=acceptUnverifiedChainlinkDataStreamsReports,proto3" json:"accept_unverified_chainlink_data_streams_reports,omitempty"` - ChainlinkDataStreamsVerificationGasLimit uint64 `protobuf:"varint,4,opt,name=chainlink_data_streams_verification_gas_limit,json=chainlinkDataStreamsVerificationGasLimit,proto3" json:"chainlink_data_streams_verification_gas_limit,omitempty"` + PythContract string `protobuf:"bytes,1,opt,name=pyth_contract,json=pythContract,proto3" json:"pyth_contract,omitempty"` + ChainlinkVerifierProxyContract string `protobuf:"bytes,2,opt,name=chainlink_verifier_proxy_contract,json=chainlinkVerifierProxyContract,proto3" json:"chainlink_verifier_proxy_contract,omitempty"` + ChainlinkDataStreamsVerificationGasLimit uint64 `protobuf:"varint,4,opt,name=chainlink_data_streams_verification_gas_limit,json=chainlinkDataStreamsVerificationGasLimit,proto3" json:"chainlink_data_streams_verification_gas_limit,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -144,13 +143,6 @@ func (m *Params) GetChainlinkVerifierProxyContract() string { return "" } -func (m *Params) GetAcceptUnverifiedChainlinkDataStreamsReports() bool { - if m != nil { - return m.AcceptUnverifiedChainlinkDataStreamsReports - } - return false -} - func (m *Params) GetChainlinkDataStreamsVerificationGasLimit() uint64 { if m != nil { return m.ChainlinkDataStreamsVerificationGasLimit @@ -210,6 +202,7 @@ func (m *OracleInfo) GetOracleType() OracleType { return OracleType_Unspecified } +// Deprecated: Do not use. type ChainlinkPriceState struct { FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` Answer cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=answer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"answer"` @@ -917,6 +910,7 @@ type ChainlinkDataStreamsPriceState struct { ValidFromTimestamp uint64 `protobuf:"varint,3,opt,name=valid_from_timestamp,json=validFromTimestamp,proto3" json:"valid_from_timestamp,omitempty"` ObservationsTimestamp uint64 `protobuf:"varint,4,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"` PriceState PriceState `protobuf:"bytes,5,opt,name=price_state,json=priceState,proto3" json:"price_state"` + ExpiresAt uint64 `protobuf:"varint,6,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` } func (m *ChainlinkDataStreamsPriceState) Reset() { *m = ChainlinkDataStreamsPriceState{} } @@ -980,6 +974,13 @@ func (m *ChainlinkDataStreamsPriceState) GetPriceState() PriceState { return PriceState{} } +func (m *ChainlinkDataStreamsPriceState) GetExpiresAt() uint64 { + if m != nil { + return m.ExpiresAt + } + return 0 +} + // DEPRECATED! Oracle price from Band is no longer supported // // Deprecated: Do not use. @@ -1844,134 +1845,134 @@ func init() { } var fileDescriptor_1c8fbf1e7a765423 = []byte{ - // 2029 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4f, 0x6f, 0x1c, 0x49, - 0x15, 0x4f, 0xcf, 0x8c, 0xe7, 0xcf, 0x9b, 0x19, 0xbb, 0x53, 0x71, 0xc2, 0x24, 0xbb, 0x3b, 0xce, - 0xce, 0x12, 0xb0, 0xc2, 0x66, 0x26, 0xc9, 0x0a, 0xa1, 0x04, 0x84, 0x12, 0x3b, 0xc9, 0x6a, 0x94, - 0xc0, 0x5a, 0xed, 0x24, 0x48, 0x5c, 0x9a, 0x9a, 0xee, 0x1a, 0xbb, 0xd6, 0xdd, 0x5d, 0xbd, 0x5d, - 0x3d, 0x5e, 0x4f, 0x24, 0xbe, 0x40, 0x2e, 0xf0, 0x05, 0x90, 0x38, 0x73, 0x02, 0x09, 0x4e, 0x48, - 0x08, 0x71, 0xda, 0x03, 0x12, 0x7b, 0x5a, 0xad, 0x38, 0x2c, 0x90, 0x1c, 0xe0, 0xc4, 0x85, 0x2f, - 0x80, 0x5e, 0x55, 0x75, 0x4f, 0xfb, 0x5f, 0xec, 0x21, 0xec, 0x5e, 0xec, 0xae, 0x57, 0xef, 0xbd, - 0x7a, 0xff, 0xea, 0xbd, 0x5f, 0x0d, 0x5c, 0xe1, 0xd1, 0x87, 0xcc, 0x4b, 0xf9, 0x2e, 0x1b, 0x88, - 0x84, 0x7a, 0x01, 0x1b, 0xec, 0xde, 0x18, 0xb1, 0x94, 0xde, 0x30, 0xcb, 0x7e, 0x9c, 0x88, 0x54, - 0x90, 0x4e, 0xce, 0xd6, 0x37, 0x74, 0xc3, 0x76, 0x69, 0x79, 0x4b, 0x6c, 0x09, 0xc5, 0x34, 0xc0, - 0x2f, 0xcd, 0x7f, 0xa9, 0xeb, 0x09, 0x19, 0x0a, 0x39, 0x18, 0x51, 0x39, 0xd3, 0xe8, 0x09, 0x1e, - 0x99, 0xfd, 0xb3, 0x34, 0xe4, 0x91, 0x18, 0xa8, 0xbf, 0x9a, 0xd4, 0xfb, 0xbc, 0x04, 0xd5, 0x0d, - 0x9a, 0xd0, 0x50, 0x92, 0x77, 0xa0, 0x1d, 0x4f, 0xd3, 0x6d, 0xd7, 0x13, 0x51, 0x9a, 0x50, 0x2f, - 0xed, 0x58, 0x97, 0xad, 0xd5, 0x86, 0xd3, 0x42, 0xe2, 0xba, 0xa1, 0x91, 0x21, 0xbc, 0xed, 0x6d, - 0x53, 0x1e, 0x05, 0x3c, 0xda, 0x71, 0x77, 0x59, 0xc2, 0xc7, 0x9c, 0x25, 0x6e, 0x9c, 0x88, 0xbd, - 0xe9, 0x4c, 0xb0, 0xa4, 0x04, 0xbb, 0x39, 0xe3, 0x53, 0xc3, 0xb7, 0x81, 0x6c, 0xb9, 0x2a, 0x06, - 0xd7, 0xa9, 0xe7, 0xb1, 0x38, 0x75, 0x27, 0x91, 0xd1, 0xe4, 0xbb, 0x33, 0xe5, 0x3e, 0x4d, 0xa9, - 0x2b, 0xd3, 0x84, 0xd1, 0x50, 0xba, 0x09, 0x8b, 0x45, 0x92, 0xca, 0x4e, 0xf9, 0xb2, 0xb5, 0x5a, - 0x77, 0xbe, 0xa5, 0xe5, 0x9e, 0xe4, 0x62, 0xeb, 0x99, 0xd4, 0x3d, 0x9a, 0xd2, 0x4d, 0x2d, 0xe3, - 0x68, 0x11, 0xe2, 0xc2, 0xb5, 0x63, 0x94, 0x6a, 0x69, 0x8f, 0xa6, 0x5c, 0x44, 0xee, 0x16, 0x95, - 0x6e, 0xc0, 0x43, 0x9e, 0x76, 0x2a, 0x97, 0xad, 0xd5, 0x8a, 0xb3, 0xea, 0x1d, 0xa1, 0xf3, 0x69, - 0x41, 0xe2, 0x7d, 0x2a, 0x1f, 0x21, 0xff, 0xed, 0x0b, 0xff, 0xfa, 0xe5, 0x8a, 0xf5, 0xfc, 0x9f, - 0xbf, 0xbe, 0xda, 0x36, 0xb9, 0xd4, 0xf1, 0xec, 0xed, 0x00, 0x7c, 0xa0, 0x08, 0xc3, 0x68, 0x2c, - 0xc8, 0x05, 0xa8, 0xca, 0x69, 0x38, 0x12, 0x81, 0x09, 0xab, 0x59, 0x91, 0xfb, 0xd0, 0xd4, 0x62, - 0x6e, 0x3a, 0x8d, 0x99, 0x0a, 0xdd, 0xe2, 0xcd, 0xaf, 0xf7, 0x8f, 0xcb, 0x7c, 0x5f, 0xab, 0x7c, - 0x3c, 0x8d, 0x99, 0x03, 0x22, 0xff, 0xee, 0x7d, 0x66, 0xc1, 0xb9, 0x3c, 0x0a, 0x1b, 0x09, 0xf7, - 0xd8, 0x66, 0x4a, 0x53, 0x46, 0xbe, 0x06, 0xb5, 0x31, 0x63, 0xbe, 0xcb, 0xfd, 0xec, 0x5c, 0x5c, - 0x0e, 0x7d, 0xf2, 0x5d, 0xa8, 0xd2, 0x48, 0x7e, 0xcc, 0x12, 0x9d, 0xad, 0xb5, 0x77, 0x3e, 0xf9, - 0x62, 0xe5, 0xcc, 0x5f, 0xbf, 0x58, 0x79, 0x43, 0xd7, 0x90, 0xf4, 0x77, 0xfa, 0x5c, 0x0c, 0x42, - 0x9a, 0x6e, 0xf7, 0x1f, 0xb1, 0x2d, 0xea, 0x4d, 0xef, 0x31, 0xcf, 0x31, 0x22, 0xe4, 0x4d, 0x68, - 0xa4, 0x3c, 0x64, 0x32, 0xa5, 0x61, 0xac, 0x72, 0x52, 0x71, 0x66, 0x04, 0xf2, 0x10, 0x9a, 0x31, - 0x5a, 0xe0, 0x4a, 0x34, 0x41, 0xc5, 0xb3, 0xf9, 0x2a, 0x97, 0x66, 0xe6, 0xae, 0x55, 0xd0, 0x0a, - 0x07, 0xe2, 0x9c, 0xd2, 0xfb, 0xb7, 0x05, 0x8b, 0x6b, 0x34, 0xf2, 0x0b, 0x3e, 0x1d, 0x17, 0xca, - 0x1b, 0x50, 0x49, 0xf0, 0x40, 0xed, 0xd0, 0x5b, 0xc6, 0xa1, 0xf3, 0x87, 0x1d, 0x1a, 0x46, 0xa9, - 0xa3, 0x58, 0xc9, 0xdb, 0xd0, 0x4a, 0x98, 0x14, 0xc1, 0x2e, 0x73, 0xd1, 0x7e, 0xe3, 0x4b, 0xd3, - 0xd0, 0x1e, 0xf3, 0x90, 0x91, 0xb7, 0x00, 0x12, 0xf6, 0xd1, 0x84, 0xc9, 0xd4, 0x1d, 0xde, 0x33, - 0xc5, 0xd1, 0x30, 0x94, 0xe1, 0xbd, 0x83, 0xce, 0x2e, 0xbc, 0x8e, 0xb3, 0xb7, 0x4b, 0x1d, 0xab, - 0xf7, 0x0b, 0x0b, 0x16, 0x15, 0xd3, 0x03, 0xc6, 0x7c, 0xed, 0x30, 0x81, 0x0a, 0x5e, 0x69, 0xe3, - 0xae, 0xfa, 0x26, 0xcb, 0xb0, 0xf0, 0xd1, 0x44, 0x64, 0xde, 0x3a, 0x7a, 0x81, 0xd5, 0x54, 0xb4, - 0xa6, 0x7c, 0x7a, 0x6b, 0x8a, 0x76, 0x90, 0x4b, 0x50, 0x4f, 0x58, 0x40, 0xa7, 0x2c, 0x91, 0x9d, - 0xca, 0xe5, 0xf2, 0x6a, 0xc3, 0xc9, 0xd7, 0xbd, 0x07, 0xd0, 0xda, 0x48, 0xc4, 0x2e, 0xf7, 0x59, - 0xa2, 0x0a, 0xfb, 0x12, 0xd4, 0x63, 0xb3, 0x36, 0x06, 0xe6, 0xeb, 0x7d, 0x7a, 0x4a, 0x07, 0xf4, - 0xfc, 0xc1, 0x82, 0x76, 0xa6, 0x48, 0x9f, 0xfa, 0x10, 0xda, 0x99, 0xa4, 0xcb, 0xa3, 0xb1, 0x50, - 0xea, 0x9a, 0x37, 0xbf, 0xf1, 0x2a, 0xf3, 0x67, 0x86, 0x38, 0xad, 0xb8, 0x68, 0xd6, 0x4f, 0xe0, - 0x7c, 0xae, 0xac, 0x10, 0x12, 0x6d, 0x47, 0xf3, 0xe6, 0xbb, 0x27, 0x2b, 0x2d, 0xc4, 0xe6, 0x5c, - 0x7c, 0x88, 0x26, 0x7b, 0xdb, 0x40, 0x0e, 0xb3, 0x1e, 0x5b, 0x9c, 0xb7, 0x61, 0x41, 0xe7, 0xa4, - 0x34, 0x47, 0x4e, 0xb4, 0x48, 0xef, 0x16, 0x46, 0xca, 0x54, 0x84, 0x72, 0xee, 0xd4, 0x05, 0xd1, - 0x7b, 0x58, 0x28, 0x26, 0xf5, 0x41, 0x6e, 0xc1, 0x82, 0x8a, 0x87, 0x16, 0x3e, 0xdd, 0xbd, 0xd7, - 0x12, 0xbd, 0xdf, 0x5b, 0x40, 0xd6, 0x05, 0x8f, 0xf0, 0xbc, 0x82, 0xcb, 0x04, 0x2a, 0x3b, 0x3c, - 0xca, 0x1a, 0x8c, 0xfa, 0xde, 0xdf, 0x21, 0x4a, 0x07, 0x3b, 0x84, 0x0d, 0xe5, 0x1d, 0x36, 0x55, - 0xe5, 0xd9, 0x70, 0xf0, 0x13, 0xad, 0xdf, 0xa5, 0xc1, 0x84, 0x99, 0x0b, 0xa6, 0x17, 0xff, 0xd7, - 0xcb, 0xd5, 0xfb, 0x8b, 0x05, 0x4b, 0x9b, 0xa9, 0x48, 0x8a, 0xed, 0x71, 0x9f, 0x99, 0xd6, 0x41, - 0x33, 0x67, 0xb9, 0x2c, 0xed, 0xcb, 0xe5, 0xad, 0xcc, 0xd8, 0xf2, 0x1c, 0x21, 0xfc, 0x12, 0x3c, - 0xfa, 0x9d, 0x05, 0x50, 0x70, 0xe6, 0x7f, 0xcf, 0x2c, 0xf9, 0x21, 0xd8, 0xde, 0x24, 0x9c, 0x04, - 0x14, 0x6d, 0xd0, 0xf7, 0x65, 0x9e, 0xb9, 0xb0, 0x34, 0x13, 0xd6, 0x45, 0x76, 0x68, 0x40, 0x94, - 0x0b, 0x71, 0xed, 0x7d, 0x56, 0x82, 0xc5, 0x8d, 0x69, 0xba, 0x5d, 0xb0, 0xfd, 0x22, 0x76, 0x11, - 0x8c, 0x4b, 0x3e, 0xa8, 0x6a, 0x6a, 0x3d, 0xf4, 0xc9, 0x1d, 0x68, 0xb0, 0x90, 0xce, 0x6f, 0x54, - 0x9d, 0x85, 0x54, 0x5b, 0xf3, 0x7d, 0xc0, 0x6f, 0xc4, 0x27, 0xe3, 0x79, 0x52, 0x56, 0x63, 0x21, - 0x5d, 0x17, 0xd1, 0x98, 0x7c, 0x07, 0x2a, 0x4a, 0xb6, 0x72, 0x7a, 0x59, 0x25, 0x80, 0xe3, 0x25, - 0x9e, 0x8c, 0x02, 0x2e, 0xb7, 0xf5, 0x78, 0x59, 0xd0, 0xe3, 0xc5, 0xd0, 0xd4, 0x78, 0x39, 0x50, - 0x10, 0xd5, 0xd7, 0x2a, 0x88, 0xdf, 0x94, 0xa0, 0x7b, 0x14, 0x16, 0x3a, 0x0d, 0x20, 0xb8, 0x83, - 0xa3, 0x10, 0x21, 0xd3, 0xbe, 0x48, 0x9f, 0x30, 0x45, 0x9b, 0x5a, 0x44, 0x87, 0xf9, 0x3a, 0x2c, - 0xef, 0xd2, 0x80, 0xfb, 0xee, 0x38, 0x11, 0xa1, 0x7b, 0x10, 0x20, 0x10, 0xb5, 0xf7, 0x20, 0x11, - 0xe1, 0xe3, 0xfc, 0x82, 0x7d, 0x1b, 0x2e, 0x88, 0x91, 0x64, 0xc9, 0xae, 0x42, 0x54, 0xb2, 0x20, - 0xa3, 0xdb, 0xc0, 0xf9, 0xe2, 0xee, 0xe3, 0xe3, 0x00, 0xc6, 0xeb, 0x5d, 0xa2, 0xe7, 0x65, 0x38, - 0x8b, 0x00, 0x43, 0x03, 0x2b, 0x47, 0x0f, 0xf6, 0xe2, 0xd4, 0x37, 0x91, 0x2a, 0x4c, 0x7d, 0x9f, - 0xac, 0x82, 0x6d, 0x50, 0x9b, 0xf4, 0x12, 0x1e, 0x2b, 0xa6, 0x92, 0x2a, 0xf3, 0x45, 0x4d, 0xdf, - 0x54, 0xe4, 0xa1, 0x4f, 0x3a, 0x50, 0xd3, 0x5d, 0x03, 0xc1, 0x2b, 0x4e, 0xc0, 0x6c, 0x49, 0xde, - 0x80, 0x06, 0x95, 0x3b, 0xae, 0x27, 0x26, 0x51, 0x06, 0x3a, 0xeb, 0x54, 0xee, 0xac, 0xe3, 0x1a, - 0x37, 0x43, 0x1e, 0x99, 0x4d, 0x5d, 0x36, 0xf5, 0x90, 0x47, 0x7a, 0x73, 0x1b, 0x1a, 0x63, 0xc6, - 0x0c, 0x5c, 0xad, 0xaa, 0x79, 0x76, 0xb1, 0xaf, 0x13, 0xd4, 0xc7, 0xde, 0x9c, 0x3b, 0x8e, 0xcd, - 0x7a, 0xed, 0x3a, 0xba, 0xfc, 0xab, 0xbf, 0xad, 0xac, 0x6e, 0xf1, 0x74, 0x7b, 0x32, 0xea, 0x7b, - 0x22, 0x1c, 0x98, 0x87, 0x82, 0xfe, 0x77, 0x4d, 0xfa, 0x3b, 0x03, 0x44, 0x9f, 0x52, 0x09, 0x48, - 0xa7, 0x3e, 0x66, 0x4c, 0x61, 0x5b, 0xb2, 0x82, 0x91, 0x66, 0x31, 0x4d, 0x18, 0x02, 0xe4, 0x4e, - 0x4d, 0x19, 0x02, 0x86, 0xf4, 0x3e, 0x95, 0xc8, 0xc0, 0xf6, 0x98, 0x37, 0x49, 0x35, 0x43, 0x5d, - 0x33, 0x18, 0x12, 0x32, 0xac, 0x82, 0x8d, 0x8e, 0x48, 0x31, 0x49, 0x3c, 0x66, 0xfc, 0x69, 0x28, - 0xae, 0xc5, 0x90, 0x47, 0x9b, 0x8a, 0xac, 0xbc, 0x52, 0xe0, 0xe7, 0x79, 0x09, 0xda, 0x98, 0x8c, - 0xe1, 0xda, 0xba, 0x79, 0x95, 0xac, 0x82, 0x3d, 0xa2, 0x91, 0xef, 0xf2, 0x91, 0xe7, 0xb2, 0x88, - 0x8e, 0x02, 0xa6, 0xd3, 0x51, 0x77, 0x16, 0x91, 0x3e, 0x1c, 0x79, 0xf7, 0x35, 0x15, 0xcb, 0x0f, - 0x99, 0xf2, 0xb4, 0x45, 0x29, 0x96, 0x4e, 0x60, 0xf2, 0x42, 0xf8, 0xc8, 0x33, 0xc9, 0x1d, 0x9a, - 0x1d, 0xf2, 0x2e, 0x20, 0x35, 0xb7, 0x6d, 0x9b, 0x46, 0x11, 0x0b, 0xcc, 0x54, 0xb2, 0xf9, 0xc8, - 0x33, 0xd6, 0x69, 0x3a, 0xba, 0x8a, 0xdc, 0xbb, 0x2c, 0x91, 0x5c, 0x44, 0xba, 0x19, 0x38, 0xc0, - 0x47, 0xde, 0x53, 0x4d, 0x21, 0x5d, 0xcd, 0xa0, 0xee, 0x10, 0xf7, 0x55, 0xd6, 0x1a, 0x4e, 0x83, - 0x8f, 0xbc, 0x0d, 0x91, 0x60, 0x29, 0x5c, 0x85, 0xb3, 0x81, 0x6a, 0x10, 0xae, 0xa9, 0x1d, 0xee, - 0x4b, 0x95, 0xbe, 0xb2, 0xb3, 0xa4, 0x37, 0xcc, 0x7b, 0xc1, 0x97, 0x2a, 0x18, 0x3f, 0xb3, 0x60, - 0x79, 0x53, 0x15, 0x8b, 0x2a, 0xe0, 0x59, 0xfd, 0x7f, 0x0f, 0xaa, 0x5a, 0x83, 0x8a, 0xc4, 0x69, - 0x9f, 0x0b, 0x46, 0x06, 0x4b, 0x4b, 0x97, 0x60, 0x56, 0xb4, 0x0d, 0xa7, 0xae, 0x09, 0x43, 0xff, - 0x84, 0xc6, 0x3d, 0x85, 0x73, 0x8f, 0xa8, 0x4c, 0xf7, 0x9b, 0x23, 0xc9, 0x08, 0xce, 0x07, 0x54, - 0x9a, 0xc6, 0x31, 0xbb, 0xc4, 0xb2, 0x63, 0xa9, 0xda, 0xec, 0x1f, 0x6f, 0xde, 0x51, 0xee, 0x39, - 0xe7, 0x82, 0xc3, 0x67, 0xf4, 0xfe, 0x64, 0x21, 0xee, 0xe4, 0x1e, 0x73, 0x98, 0x27, 0x12, 0x5f, - 0x7e, 0x99, 0x41, 0xf8, 0x11, 0x2c, 0x07, 0x08, 0xf1, 0x32, 0x8f, 0x12, 0x7d, 0xa4, 0xba, 0xc0, - 0xcd, 0x9b, 0x57, 0x4e, 0x68, 0x34, 0xda, 0x40, 0x87, 0x68, 0x15, 0x45, 0x9b, 0x7b, 0x63, 0x68, - 0x16, 0xd6, 0x87, 0xd1, 0x47, 0x31, 0xd8, 0xb3, 0x71, 0x5e, 0x9a, 0x1b, 0xa8, 0xfd, 0xa7, 0x0c, - 0xe4, 0x07, 0x2c, 0xa5, 0xbe, 0x1a, 0x01, 0x34, 0xe5, 0x32, 0xe5, 0x9e, 0xba, 0xac, 0x5b, 0x89, - 0x98, 0xc4, 0xe6, 0x1a, 0xe2, 0x89, 0x6d, 0x07, 0x14, 0x49, 0x37, 0x96, 0x3e, 0x9c, 0x33, 0xbe, - 0xba, 0x92, 0x86, 0x31, 0xb6, 0x37, 0xfe, 0x4c, 0x1b, 0xd0, 0x76, 0xce, 0x9a, 0xad, 0x4d, 0xb5, - 0xb3, 0xc9, 0x9f, 0x31, 0x1c, 0x8c, 0x21, 0xa3, 0xd1, 0x3c, 0x43, 0x55, 0x09, 0xa0, 0x60, 0xfa, - 0x31, 0x8d, 0xe7, 0x9a, 0xa8, 0x28, 0x40, 0xbe, 0x09, 0x4b, 0x63, 0x9e, 0xc8, 0xb4, 0x30, 0x2a, - 0x16, 0x74, 0xdf, 0x55, 0xe4, 0xd9, 0x1d, 0xb9, 0x02, 0x8b, 0xaa, 0x26, 0x67, 0x7c, 0x55, 0xc5, - 0xd7, 0x46, 0xea, 0x8c, 0xed, 0x8e, 0xee, 0xb3, 0x3a, 0xd0, 0xb5, 0x39, 0xc0, 0x45, 0xc8, 0x23, - 0x3d, 0xf5, 0x50, 0x03, 0xdd, 0x33, 0x1a, 0xea, 0xf3, 0x68, 0xa0, 0x7b, 0x5a, 0xc3, 0x03, 0x68, - 0x85, 0xcc, 0xe7, 0x34, 0x33, 0xa3, 0x71, 0x7a, 0x25, 0x4d, 0x2d, 0xa8, 0xf4, 0xf4, 0xfe, 0x61, - 0x81, 0xad, 0xbe, 0xee, 0xa6, 0x58, 0x79, 0x6a, 0x6a, 0xbe, 0x0a, 0x58, 0x2d, 0x17, 0x0b, 0xac, - 0x9c, 0x41, 0x41, 0x62, 0xc0, 0x8e, 0x9e, 0xda, 0x1a, 0xc7, 0x10, 0xa8, 0xb0, 0xbd, 0x58, 0xa8, - 0x74, 0x2d, 0x38, 0xea, 0x1b, 0x6f, 0xd0, 0x0c, 0x96, 0xe9, 0x1c, 0xcc, 0x10, 0xd7, 0xc5, 0x02, - 0xe2, 0xaa, 0x2a, 0x45, 0x39, 0x98, 0x32, 0x5b, 0x4a, 0x5f, 0x4d, 0xe9, 0xc3, 0xad, 0xfb, 0xa8, - 0xf2, 0x20, 0x5c, 0xaa, 0x2b, 0xad, 0x45, 0xb8, 0xd4, 0xfb, 0x29, 0x34, 0xee, 0x4a, 0xc9, 0xd2, - 0x0d, 0xca, 0x13, 0x54, 0x45, 0x71, 0x51, 0xf0, 0x4d, 0xad, 0x87, 0x3e, 0x79, 0x02, 0x6d, 0xc9, - 0xb7, 0x22, 0xe6, 0x6b, 0x03, 0xb3, 0x67, 0xdf, 0xf5, 0x57, 0xb4, 0x22, 0xc5, 0xae, 0xcc, 0xff, - 0x60, 0x9c, 0x9f, 0xe1, 0xb4, 0xe4, 0x8c, 0x2e, 0x7b, 0xbf, 0xb5, 0xe0, 0xc2, 0xd1, 0x8c, 0xea, - 0xe7, 0x33, 0x6d, 0x28, 0x4b, 0x5c, 0x7c, 0xdd, 0x64, 0x3f, 0x9f, 0x65, 0xc4, 0x87, 0x6c, 0x7a, - 0xc2, 0xb3, 0x28, 0xbf, 0xf1, 0xe5, 0xb9, 0x01, 0xfc, 0x9b, 0xd0, 0x40, 0x43, 0x69, 0x3a, 0x49, - 0xf4, 0x1b, 0xaa, 0xe5, 0xcc, 0x08, 0x68, 0xf6, 0x52, 0x8e, 0x0b, 0xf5, 0x0f, 0x63, 0x07, 0x81, - 0x60, 0x2b, 0x07, 0x82, 0x2b, 0xd0, 0x1c, 0x4f, 0x82, 0xc0, 0xfc, 0xe6, 0xa6, 0xac, 0x6c, 0x39, - 0x80, 0x24, 0x23, 0xf9, 0x55, 0xe1, 0xbc, 0xab, 0x7f, 0xb6, 0xb2, 0x9f, 0xd0, 0xb0, 0x77, 0x93, - 0x25, 0x68, 0x3e, 0x89, 0x64, 0xcc, 0x3c, 0xf5, 0x9b, 0x9f, 0x7d, 0x86, 0xb4, 0xa0, 0x82, 0x60, - 0xc1, 0xb6, 0x2e, 0x95, 0xea, 0x16, 0x69, 0x43, 0x23, 0x7f, 0xea, 0xda, 0x25, 0xd2, 0x82, 0x7a, - 0xf6, 0x56, 0xb5, 0xcb, 0xb8, 0x99, 0x07, 0xc0, 0xae, 0x90, 0x06, 0x2c, 0x38, 0xf4, 0x99, 0x48, - 0xec, 0x05, 0x52, 0x83, 0xf2, 0x3d, 0x4e, 0xed, 0x2a, 0xa9, 0x43, 0xe5, 0xee, 0xc6, 0xf0, 0x3d, - 0xbb, 0x86, 0xa4, 0x27, 0x21, 0xb5, 0xeb, 0x48, 0xc2, 0x77, 0x8a, 0xdd, 0x20, 0x4b, 0x50, 0x33, - 0xb8, 0xc4, 0x06, 0x75, 0x5a, 0x0b, 0xea, 0xd9, 0xeb, 0xdf, 0x6e, 0xa2, 0x3e, 0xf5, 0xb4, 0xb4, - 0x5b, 0xa4, 0x03, 0xcb, 0x47, 0x41, 0x70, 0xbb, 0xbd, 0xf6, 0xe1, 0x27, 0x2f, 0xba, 0xd6, 0xa7, - 0x2f, 0xba, 0xd6, 0xdf, 0x5f, 0x74, 0xad, 0x9f, 0xbf, 0xec, 0x9e, 0xf9, 0xe3, 0xcb, 0xae, 0xf5, - 0xe9, 0xcb, 0xee, 0x99, 0xcf, 0x5f, 0x76, 0xcf, 0xfc, 0xf8, 0x51, 0x01, 0x9e, 0x0d, 0xb3, 0x22, - 0x7d, 0x44, 0x47, 0x72, 0x90, 0x97, 0xec, 0x35, 0x4f, 0x24, 0xac, 0xb8, 0xc4, 0x73, 0x06, 0xa1, - 0xf0, 0x27, 0x01, 0x93, 0xd9, 0x2f, 0xc9, 0x0a, 0xc8, 0x8d, 0xaa, 0xea, 0xe7, 0xdd, 0xf7, 0xfe, - 0x1b, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x82, 0xc0, 0x20, 0x6a, 0x16, 0x00, 0x00, + // 2017 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4f, 0x73, 0x1b, 0x49, + 0x15, 0xcf, 0x48, 0xb2, 0xa5, 0x79, 0x92, 0xec, 0x71, 0xdb, 0x09, 0x8a, 0x77, 0x57, 0xce, 0x6a, + 0x09, 0xb8, 0x52, 0x1b, 0x29, 0xc9, 0x16, 0x45, 0x25, 0x50, 0x54, 0x62, 0x3b, 0xd9, 0x12, 0x31, + 0xac, 0x6b, 0x9c, 0x84, 0x2a, 0x2e, 0x43, 0x6b, 0xa6, 0x65, 0xf7, 0x7a, 0x66, 0x7a, 0xb6, 0x7b, + 0xa4, 0xb5, 0x52, 0xc5, 0x17, 0xc8, 0x05, 0xbe, 0x00, 0x55, 0x9c, 0x39, 0x71, 0x80, 0x13, 0x55, + 0x14, 0xc5, 0x69, 0x6f, 0xe4, 0x44, 0x51, 0x7b, 0x58, 0x20, 0x39, 0xc0, 0x89, 0x0b, 0x07, 0xae, + 0x54, 0xff, 0x99, 0xd1, 0xd8, 0x8e, 0x63, 0x8b, 0xb0, 0x7b, 0xb1, 0xa7, 0x5f, 0xbf, 0xf7, 0xfa, + 0xfd, 0xeb, 0xf7, 0x7e, 0x2d, 0xb8, 0x4a, 0xe3, 0x8f, 0x89, 0x9f, 0xd2, 0x31, 0xe9, 0x31, 0x8e, + 0xfd, 0x90, 0xf4, 0xc6, 0x37, 0x07, 0x24, 0xc5, 0x37, 0xcd, 0xb2, 0x9b, 0x70, 0x96, 0x32, 0xd4, + 0xca, 0xd9, 0xba, 0x86, 0x6e, 0xd8, 0x56, 0x57, 0xf6, 0xd8, 0x1e, 0x53, 0x4c, 0x3d, 0xf9, 0xa5, + 0xf9, 0x57, 0xdb, 0x3e, 0x13, 0x11, 0x13, 0xbd, 0x01, 0x16, 0x53, 0x8d, 0x3e, 0xa3, 0xb1, 0xd9, + 0x5f, 0xc2, 0x11, 0x8d, 0x59, 0x4f, 0xfd, 0xd5, 0xa4, 0xce, 0x7f, 0x2c, 0x98, 0xdf, 0xc1, 0x1c, + 0x47, 0x02, 0xbd, 0x07, 0xcd, 0x64, 0x92, 0xee, 0x7b, 0x3e, 0x8b, 0x53, 0x8e, 0xfd, 0xb4, 0x65, + 0x5d, 0xb1, 0xd6, 0x6d, 0xb7, 0x21, 0x89, 0x9b, 0x86, 0x86, 0xfa, 0xf0, 0xae, 0xbf, 0x8f, 0x69, + 0x1c, 0xd2, 0xf8, 0xc0, 0x1b, 0x13, 0x4e, 0x87, 0x94, 0x70, 0x2f, 0xe1, 0xec, 0x70, 0x32, 0x15, + 0x2c, 0x29, 0xc1, 0x76, 0xce, 0xf8, 0xc4, 0xf0, 0xed, 0x48, 0xb6, 0x5c, 0x95, 0x07, 0xd7, 0xa7, + 0xaa, 0x02, 0x9c, 0x62, 0x4f, 0xa4, 0x9c, 0xe0, 0x48, 0x18, 0xbd, 0x3e, 0x4e, 0x29, 0x8b, 0xbd, + 0x3d, 0x2c, 0xbc, 0x90, 0x46, 0x34, 0x6d, 0x55, 0xae, 0x58, 0xeb, 0x15, 0x77, 0x3d, 0x17, 0xda, + 0xc2, 0x29, 0xde, 0xd5, 0x22, 0x4f, 0x0a, 0x12, 0x1f, 0x62, 0xb1, 0x2d, 0xf9, 0xef, 0x5c, 0xfa, + 0xe7, 0x2f, 0xd7, 0xac, 0x67, 0xff, 0xf8, 0xf5, 0xb5, 0xa6, 0x09, 0xb2, 0x76, 0xf4, 0xfb, 0x95, + 0x5a, 0xd9, 0xa9, 0x74, 0x0e, 0x00, 0x3e, 0x52, 0xe4, 0x7e, 0x3c, 0x64, 0xe8, 0x12, 0xcc, 0x8b, + 0x49, 0x34, 0x60, 0xa1, 0xf1, 0xda, 0xac, 0xd0, 0x7d, 0xa8, 0x6b, 0x61, 0x2f, 0x9d, 0x24, 0x44, + 0x79, 0xb6, 0x70, 0xeb, 0xeb, 0xdd, 0xd3, 0x12, 0xd3, 0xd5, 0x2a, 0x1f, 0x4d, 0x12, 0xe2, 0x02, + 0xcb, 0xbf, 0x3b, 0x9f, 0x5b, 0xb0, 0xbc, 0x99, 0xd9, 0xbd, 0xc3, 0xa9, 0x4f, 0x76, 0x53, 0x9c, + 0x12, 0xf4, 0x35, 0xa8, 0x0e, 0x09, 0x09, 0x3c, 0x1a, 0x64, 0xe7, 0xca, 0x65, 0x3f, 0x40, 0xdf, + 0x81, 0x79, 0x1c, 0x8b, 0x4f, 0x09, 0xd7, 0xc1, 0xdc, 0x78, 0xef, 0xb3, 0x2f, 0xd6, 0x2e, 0x7c, + 0xfe, 0xc5, 0xda, 0x5b, 0x3a, 0xc5, 0x22, 0x38, 0xe8, 0x52, 0xd6, 0x8b, 0x70, 0xba, 0xdf, 0xdd, + 0x26, 0x7b, 0xd8, 0x9f, 0x6c, 0x11, 0xdf, 0x35, 0x22, 0xe8, 0x6d, 0xb0, 0x53, 0x1a, 0x11, 0x91, + 0xe2, 0x28, 0x69, 0x95, 0x55, 0xd4, 0xa6, 0x04, 0xf4, 0x10, 0xea, 0x89, 0xb4, 0xc0, 0x13, 0xd2, + 0x04, 0x15, 0xd5, 0xfa, 0xeb, 0x5c, 0x9a, 0x9a, 0xbb, 0x51, 0x91, 0x56, 0xb8, 0x90, 0xe4, 0x94, + 0x3b, 0xa5, 0x96, 0xd5, 0xf9, 0x97, 0x05, 0x0b, 0x1b, 0x38, 0x0e, 0x0a, 0x7e, 0x9d, 0x16, 0xce, + 0x9b, 0x50, 0xe1, 0xf2, 0x50, 0xed, 0xd4, 0x3b, 0xc6, 0xa9, 0x8b, 0x27, 0x9d, 0xea, 0xc7, 0xa9, + 0xab, 0x58, 0xd1, 0xbb, 0xd0, 0xe0, 0x44, 0xb0, 0x70, 0x4c, 0x3c, 0xe9, 0x83, 0xf1, 0xa7, 0x6e, + 0x68, 0x8f, 0x68, 0x44, 0xd0, 0x3b, 0x00, 0x9c, 0x7c, 0x32, 0x22, 0x22, 0xf5, 0xfa, 0x5b, 0xa6, + 0x4c, 0x6c, 0x43, 0xe9, 0x6f, 0x1d, 0x77, 0x78, 0xee, 0x8d, 0x1d, 0xfe, 0x85, 0x05, 0x0b, 0x8a, + 0xe9, 0x01, 0x21, 0x81, 0x76, 0x18, 0x41, 0x45, 0xde, 0x3a, 0xe3, 0xae, 0xfa, 0x46, 0x2b, 0x30, + 0xf7, 0xc9, 0x88, 0x65, 0xde, 0xba, 0x7a, 0x21, 0x2b, 0xaa, 0x68, 0x4d, 0xf9, 0xfc, 0xd6, 0x14, + 0xed, 0x40, 0xab, 0x50, 0xe3, 0x24, 0xc4, 0x13, 0xc2, 0x45, 0xab, 0x72, 0xa5, 0xbc, 0x6e, 0xbb, + 0xf9, 0xba, 0xf3, 0x00, 0x1a, 0x3b, 0x9c, 0x8d, 0x69, 0x40, 0xb8, 0x2a, 0xee, 0x55, 0xa8, 0x25, + 0x66, 0x6d, 0x0c, 0xcc, 0xd7, 0x47, 0xf4, 0x94, 0x8e, 0xe9, 0xf9, 0xbd, 0x05, 0xcd, 0x4c, 0x91, + 0x3e, 0xf5, 0x21, 0x34, 0x33, 0x49, 0x8f, 0xc6, 0x43, 0xa6, 0xd4, 0xd5, 0x6f, 0x7d, 0xe3, 0x75, + 0xe6, 0x4f, 0x0d, 0x71, 0x1b, 0x49, 0xd1, 0xac, 0x9f, 0xc0, 0xc5, 0x5c, 0x59, 0x21, 0x24, 0xda, + 0x8e, 0xfa, 0xad, 0xf7, 0xcf, 0x56, 0x5a, 0x88, 0xcd, 0x72, 0x72, 0x82, 0x26, 0x3a, 0xfb, 0x80, + 0x4e, 0xb2, 0x9e, 0x5a, 0x9c, 0x77, 0x60, 0x4e, 0xe7, 0xa4, 0x34, 0x43, 0x4e, 0xb4, 0x48, 0xe7, + 0xb6, 0x8c, 0x94, 0xa9, 0x08, 0xe5, 0xdc, 0xb9, 0x0b, 0xa2, 0xf3, 0xb0, 0x50, 0x4c, 0xea, 0x03, + 0xdd, 0x86, 0x39, 0x15, 0x0f, 0x2d, 0x7c, 0xbe, 0xbb, 0xaf, 0x25, 0x3a, 0xbf, 0xb3, 0x00, 0x6d, + 0x32, 0x1a, 0xcb, 0xf3, 0x0a, 0x2e, 0x23, 0xa8, 0x1c, 0xd0, 0x38, 0x6b, 0x32, 0xea, 0xfb, 0x68, + 0x97, 0x28, 0x1d, 0xef, 0x12, 0x0e, 0x94, 0x0f, 0xc8, 0x44, 0x95, 0xa7, 0xed, 0xca, 0x4f, 0x69, + 0xfd, 0x18, 0x87, 0x23, 0x62, 0x2e, 0x98, 0x5e, 0xfc, 0x5f, 0x2f, 0x57, 0xe7, 0x4f, 0x16, 0x2c, + 0xee, 0xa6, 0x8c, 0x17, 0x5b, 0xe4, 0x11, 0x33, 0xad, 0xe3, 0x66, 0x4e, 0x73, 0x59, 0x3a, 0x92, + 0xcb, 0xdb, 0x99, 0xb1, 0xe5, 0x19, 0x42, 0xf8, 0x25, 0x78, 0xf4, 0x5b, 0x0b, 0xa0, 0xe0, 0xcc, + 0xff, 0x9e, 0x59, 0xf4, 0x43, 0x70, 0xfc, 0x51, 0x34, 0x0a, 0xb1, 0xb4, 0x41, 0xdf, 0x97, 0x59, + 0x66, 0xc3, 0xe2, 0x54, 0x58, 0x17, 0xd9, 0x89, 0x21, 0x51, 0x2e, 0xc4, 0xb5, 0xf3, 0xe7, 0x12, + 0x2c, 0xec, 0x4c, 0xd2, 0xfd, 0x82, 0xed, 0x97, 0x65, 0x17, 0x91, 0x71, 0xc9, 0x87, 0x55, 0x55, + 0xad, 0xfb, 0x01, 0xba, 0x0b, 0x36, 0x89, 0xf0, 0xec, 0x46, 0xd5, 0x48, 0x84, 0xb5, 0x35, 0xdf, + 0x03, 0xf9, 0x2d, 0x21, 0xc4, 0x70, 0x96, 0x94, 0x55, 0x49, 0x84, 0x37, 0x59, 0x3c, 0x44, 0xdf, + 0x86, 0x8a, 0x92, 0xad, 0x9c, 0x5f, 0x56, 0x09, 0xc8, 0xf1, 0x92, 0x8c, 0x06, 0x21, 0x15, 0xfb, + 0x7a, 0xbc, 0xcc, 0xe9, 0xf1, 0x62, 0x68, 0x6a, 0xbc, 0x1c, 0x2b, 0x88, 0xf9, 0x37, 0x2a, 0x88, + 0xe7, 0x25, 0x68, 0x6f, 0xbe, 0x02, 0xc1, 0x9c, 0x07, 0x14, 0xdc, 0x95, 0xa3, 0x30, 0x61, 0x3c, + 0x3d, 0x12, 0xe9, 0x33, 0xa6, 0x68, 0x5d, 0x8b, 0xe8, 0x30, 0xdf, 0x80, 0x95, 0x31, 0x0e, 0x69, + 0xe0, 0x0d, 0x39, 0x8b, 0xbc, 0xe3, 0x20, 0x01, 0xa9, 0xbd, 0x07, 0x9c, 0x45, 0x8f, 0xf2, 0x0b, + 0xf6, 0x2d, 0xb8, 0xc4, 0x06, 0x82, 0xf0, 0xb1, 0xc2, 0x56, 0xa2, 0x20, 0xa3, 0xdb, 0xc0, 0xc5, + 0xe2, 0xee, 0xa3, 0xd3, 0x40, 0xc6, 0x1b, 0x5d, 0x22, 0x39, 0xdf, 0xc9, 0x61, 0x42, 0x39, 0x11, + 0x1e, 0x4e, 0x55, 0xfc, 0x2b, 0xae, 0x6d, 0x28, 0xf7, 0xd2, 0xce, 0xb3, 0x32, 0x2c, 0x49, 0xfc, + 0xa1, 0xb1, 0x97, 0xab, 0xe7, 0x7e, 0x11, 0x14, 0x98, 0x40, 0x16, 0x40, 0x41, 0x80, 0xd6, 0xc1, + 0x31, 0xc0, 0x4e, 0xf8, 0x9c, 0x26, 0x8a, 0xa9, 0xa4, 0x6e, 0xc1, 0x82, 0xa6, 0xef, 0x2a, 0x72, + 0x3f, 0x40, 0x2d, 0xa8, 0xea, 0xa6, 0x22, 0x5a, 0x65, 0x35, 0x20, 0xb3, 0x25, 0x7a, 0x0b, 0x6c, + 0x2c, 0x0e, 0x3c, 0x9f, 0x8d, 0xe2, 0x0c, 0x9d, 0xd6, 0xb0, 0x38, 0xd8, 0x94, 0x6b, 0xb9, 0x19, + 0xd1, 0xd8, 0x6c, 0xea, 0xaa, 0xaa, 0x45, 0x34, 0xd6, 0x9b, 0xfb, 0x60, 0x0f, 0x09, 0x31, 0xb8, + 0x76, 0x5e, 0x8d, 0xbb, 0xcb, 0x5d, 0x9d, 0xbf, 0xae, 0x6c, 0xdd, 0x79, 0x5c, 0x64, 0x2f, 0xdf, + 0xb8, 0x21, 0x23, 0xf2, 0xab, 0xbf, 0xae, 0xad, 0xef, 0xd1, 0x74, 0x7f, 0x34, 0xe8, 0xfa, 0x2c, + 0xea, 0x19, 0xa8, 0xaf, 0xff, 0x5d, 0x17, 0xc1, 0x41, 0x4f, 0x02, 0x54, 0xa1, 0x04, 0x84, 0x5b, + 0x1b, 0x12, 0xa2, 0x40, 0x30, 0x5a, 0x93, 0x89, 0x20, 0x09, 0xe6, 0x44, 0x22, 0xe9, 0x56, 0x55, + 0x19, 0x02, 0x86, 0xf4, 0x21, 0x16, 0x92, 0x81, 0x1c, 0x12, 0x7f, 0x94, 0x6a, 0x86, 0x9a, 0x66, + 0x30, 0x24, 0xc9, 0xb0, 0x0e, 0x8e, 0x74, 0x44, 0xb0, 0x11, 0xf7, 0x89, 0xf1, 0xc7, 0x56, 0x5c, + 0x0b, 0x11, 0x8d, 0x77, 0x15, 0x59, 0x79, 0xa5, 0xb0, 0xd1, 0xb3, 0x12, 0x34, 0x65, 0x32, 0xfa, + 0x1b, 0x9b, 0xe6, 0x5d, 0xb1, 0x0e, 0xce, 0x00, 0xc7, 0x81, 0x47, 0x07, 0xbe, 0x47, 0x62, 0x3c, + 0x08, 0x89, 0x4e, 0x47, 0xcd, 0x5d, 0x90, 0xf4, 0xfe, 0xc0, 0xbf, 0xaf, 0xa9, 0xb2, 0x3a, 0x25, + 0x53, 0x9e, 0xb6, 0x38, 0x95, 0x95, 0x15, 0x9a, 0xbc, 0x20, 0x3a, 0xf0, 0x4d, 0x72, 0xfb, 0x66, + 0x07, 0xbd, 0x0f, 0x92, 0x9a, 0xdb, 0xb6, 0x8f, 0xe3, 0x98, 0x84, 0x66, 0x68, 0x39, 0x74, 0xe0, + 0x1b, 0xeb, 0x34, 0x5d, 0xba, 0x2a, 0xb9, 0xc7, 0x84, 0x0b, 0xca, 0x62, 0xdd, 0x2b, 0x5c, 0xa0, + 0x03, 0xff, 0x89, 0xa6, 0xa0, 0xb6, 0x66, 0x50, 0x57, 0x8c, 0x06, 0x2a, 0x6b, 0xb6, 0x6b, 0xd3, + 0x81, 0xbf, 0xc3, 0xb8, 0x2c, 0x85, 0x6b, 0xb0, 0x14, 0xaa, 0xfe, 0xe1, 0x99, 0xda, 0xa1, 0x81, + 0x50, 0xe9, 0x2b, 0xbb, 0x8b, 0x7a, 0xc3, 0x3c, 0x29, 0x02, 0xa1, 0x82, 0xf1, 0x33, 0x0b, 0x56, + 0x76, 0x55, 0xb1, 0xa8, 0xfa, 0x9e, 0x5e, 0x8f, 0xef, 0xc2, 0xbc, 0xd6, 0xa0, 0x22, 0x71, 0xde, + 0x17, 0x85, 0x91, 0x91, 0xa5, 0xa5, 0x4b, 0x30, 0x2b, 0x5a, 0xdb, 0xad, 0x69, 0x42, 0x3f, 0x38, + 0xa3, 0xaf, 0x4f, 0x60, 0x79, 0x1b, 0x8b, 0xf4, 0xa8, 0x39, 0x02, 0x0d, 0xe0, 0x62, 0x88, 0x85, + 0xe9, 0x2b, 0xd3, 0x3b, 0x2e, 0x5a, 0x96, 0xaa, 0xcd, 0xee, 0xe9, 0xe6, 0xbd, 0xca, 0x3d, 0x77, + 0x39, 0x3c, 0x79, 0x46, 0xe7, 0x8f, 0x96, 0x84, 0xa5, 0xd4, 0x27, 0x2e, 0xf1, 0x19, 0x0f, 0xc4, + 0x97, 0x19, 0x84, 0x1f, 0xc1, 0x4a, 0x28, 0x11, 0x60, 0xe6, 0x11, 0xd7, 0x47, 0xaa, 0x0b, 0x5c, + 0xbf, 0x75, 0xf5, 0x8c, 0x3e, 0xa4, 0x0d, 0x74, 0x91, 0x56, 0x51, 0xb4, 0xb9, 0x33, 0x84, 0x7a, + 0x61, 0x7d, 0x12, 0x9c, 0x14, 0x83, 0x3d, 0x9d, 0xf6, 0xa5, 0x99, 0x71, 0xdc, 0xbf, 0xcb, 0x80, + 0x7e, 0x40, 0x52, 0x1c, 0xa8, 0x09, 0x81, 0x53, 0x2a, 0x52, 0xea, 0xab, 0xcb, 0xba, 0xc7, 0xd9, + 0x28, 0x31, 0xd7, 0x50, 0x9e, 0xd8, 0x74, 0x41, 0x91, 0x74, 0x63, 0xe9, 0xc2, 0xb2, 0xf1, 0xd5, + 0x13, 0x38, 0x4a, 0x64, 0x7b, 0xa3, 0x4f, 0xb5, 0x01, 0x4d, 0x77, 0xc9, 0x6c, 0xed, 0xaa, 0x9d, + 0x5d, 0xfa, 0x94, 0xc8, 0xb9, 0x19, 0x11, 0x1c, 0xcf, 0x32, 0x73, 0x95, 0x80, 0x14, 0x4c, 0x3f, + 0xc5, 0xc9, 0x4c, 0x03, 0x57, 0x0a, 0xa0, 0x6f, 0xc2, 0xe2, 0x90, 0x72, 0x91, 0x16, 0x26, 0xc9, + 0x9c, 0xee, 0xbb, 0x8a, 0x3c, 0xbd, 0x23, 0x57, 0x61, 0x41, 0xd5, 0xe4, 0x94, 0x6f, 0x5e, 0xf1, + 0x35, 0x25, 0x75, 0xca, 0x76, 0x57, 0xf7, 0x59, 0x1d, 0xe8, 0xea, 0x0c, 0xd8, 0x23, 0xa2, 0xb1, + 0x1e, 0x8a, 0x52, 0x03, 0x3e, 0x34, 0x1a, 0x6a, 0xb3, 0x68, 0xc0, 0x87, 0x5a, 0xc3, 0x03, 0x68, + 0x44, 0x24, 0xa0, 0x38, 0x33, 0xc3, 0x3e, 0xbf, 0x92, 0xba, 0x16, 0x54, 0x7a, 0x3a, 0x7f, 0xb7, + 0xc0, 0x51, 0x5f, 0xf7, 0x52, 0x59, 0x79, 0x6a, 0xa8, 0xbe, 0x0e, 0x77, 0xad, 0x14, 0x0b, 0xac, + 0x9c, 0x21, 0x45, 0x64, 0xb0, 0x90, 0x1e, 0xea, 0x1a, 0xe6, 0x20, 0xa8, 0x90, 0xc3, 0x84, 0xa9, + 0x74, 0xcd, 0xb9, 0xea, 0x5b, 0xde, 0xa0, 0x29, 0x6a, 0xd3, 0x39, 0x98, 0x02, 0xb2, 0xcb, 0x05, + 0x40, 0xa6, 0x27, 0x6e, 0x8e, 0xb5, 0xcc, 0x96, 0xd2, 0x57, 0x55, 0xfa, 0xe4, 0xd6, 0x7d, 0xa9, + 0xf2, 0x38, 0x9a, 0xaa, 0x29, 0xad, 0x45, 0x34, 0xd5, 0xf9, 0x29, 0xd8, 0xf7, 0x84, 0x20, 0xe9, + 0x0e, 0xa6, 0x5c, 0xaa, 0xc2, 0x72, 0x51, 0xf0, 0x4d, 0xad, 0xfb, 0x01, 0x7a, 0x0c, 0x4d, 0x41, + 0xf7, 0x62, 0x12, 0x68, 0x03, 0xb3, 0x57, 0xe1, 0x8d, 0xd7, 0xb4, 0x22, 0xc5, 0xae, 0xcc, 0xff, + 0x68, 0x98, 0x9f, 0xe1, 0x36, 0xc4, 0x94, 0x2e, 0x3a, 0xbf, 0xb1, 0xe0, 0xd2, 0xab, 0x19, 0xd5, + 0x0f, 0x60, 0xda, 0x50, 0xc2, 0x3d, 0xf9, 0xf8, 0xc9, 0x7e, 0x00, 0xcb, 0x88, 0x0f, 0xc9, 0xe4, + 0x8c, 0x57, 0x53, 0x7e, 0xe3, 0xcb, 0x33, 0xe3, 0xfb, 0xb7, 0xc1, 0x96, 0x86, 0xe2, 0x74, 0xc4, + 0xf5, 0x13, 0xab, 0xe1, 0x4e, 0x09, 0xd2, 0xec, 0xc5, 0x1c, 0x36, 0xba, 0x0a, 0xd1, 0x1d, 0xc7, + 0x89, 0x8d, 0x1c, 0x27, 0xae, 0x41, 0x7d, 0x38, 0x0a, 0x43, 0x4f, 0x23, 0x3f, 0x65, 0x65, 0xc3, + 0x05, 0x49, 0x32, 0x92, 0x5f, 0x15, 0x0c, 0xbc, 0xf6, 0xdc, 0xca, 0x7e, 0x65, 0x93, 0xbd, 0x1b, + 0x2d, 0x42, 0xfd, 0x71, 0x2c, 0x12, 0xe2, 0xd3, 0x21, 0x25, 0x81, 0x73, 0x01, 0x35, 0xa0, 0x22, + 0xc1, 0x82, 0x63, 0xad, 0x96, 0x6a, 0x16, 0x6a, 0x82, 0x9d, 0xbf, 0x84, 0x9d, 0x12, 0x6a, 0x40, + 0x2d, 0x7b, 0xca, 0x3a, 0x65, 0xb4, 0x04, 0x76, 0x1e, 0x00, 0xa7, 0xa2, 0xf8, 0x6d, 0x98, 0x73, + 0xf1, 0x53, 0xc6, 0x9d, 0x39, 0x54, 0x85, 0xf2, 0x16, 0xc5, 0xce, 0x3c, 0xaa, 0x41, 0xe5, 0xde, + 0x4e, 0xff, 0x03, 0xa7, 0x2a, 0x49, 0x8f, 0x23, 0xec, 0xd4, 0x24, 0x49, 0x3e, 0x65, 0x1c, 0x1b, + 0x2d, 0x42, 0xd5, 0x60, 0x13, 0x07, 0x94, 0x86, 0x06, 0xd4, 0xb2, 0x1f, 0x08, 0x9c, 0xba, 0xd4, + 0xa7, 0x5e, 0x9f, 0x4e, 0x03, 0xb5, 0x60, 0xe5, 0x55, 0x28, 0xdd, 0x69, 0x6e, 0x7c, 0xfc, 0xd9, + 0x8b, 0xb6, 0xf5, 0xfc, 0x45, 0xdb, 0xfa, 0xdb, 0x8b, 0xb6, 0xf5, 0xf3, 0x97, 0xed, 0x0b, 0x7f, + 0x78, 0xd9, 0xb6, 0x9e, 0xbf, 0x6c, 0x5f, 0xf8, 0xcb, 0xcb, 0xf6, 0x85, 0x1f, 0x6f, 0x17, 0x20, + 0x5a, 0x3f, 0x2b, 0xd4, 0x6d, 0x3c, 0x10, 0xbd, 0xbc, 0x6c, 0xaf, 0xfb, 0x8c, 0x93, 0xe2, 0x52, + 0x9e, 0xd3, 0x8b, 0x58, 0x30, 0x0a, 0x89, 0xc8, 0x7e, 0x0f, 0x56, 0x60, 0x6e, 0x30, 0xaf, 0x7e, + 0xa4, 0xfd, 0xe0, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x04, 0x33, 0x1c, 0x30, 0x16, 0x00, + 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -1999,9 +2000,6 @@ func (this *Params) Equal(that interface{}) bool { if this.ChainlinkVerifierProxyContract != that1.ChainlinkVerifierProxyContract { return false } - if this.AcceptUnverifiedChainlinkDataStreamsReports != that1.AcceptUnverifiedChainlinkDataStreamsReports { - return false - } if this.ChainlinkDataStreamsVerificationGasLimit != that1.ChainlinkDataStreamsVerificationGasLimit { return false } @@ -2032,16 +2030,6 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x20 } - if m.AcceptUnverifiedChainlinkDataStreamsReports { - i-- - if m.AcceptUnverifiedChainlinkDataStreamsReports { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - } if len(m.ChainlinkVerifierProxyContract) > 0 { i -= len(m.ChainlinkVerifierProxyContract) copy(dAtA[i:], m.ChainlinkVerifierProxyContract) @@ -2722,6 +2710,11 @@ func (m *ChainlinkDataStreamsPriceState) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.ExpiresAt != 0 { + i = encodeVarintOracle(dAtA, i, uint64(m.ExpiresAt)) + i-- + dAtA[i] = 0x30 + } { size, err := m.PriceState.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -3411,9 +3404,6 @@ func (m *Params) Size() (n int) { if l > 0 { n += 1 + l + sovOracle(uint64(l)) } - if m.AcceptUnverifiedChainlinkDataStreamsReports { - n += 2 - } if m.ChainlinkDataStreamsVerificationGasLimit != 0 { n += 1 + sovOracle(uint64(m.ChainlinkDataStreamsVerificationGasLimit)) } @@ -3694,6 +3684,9 @@ func (m *ChainlinkDataStreamsPriceState) Size() (n int) { } l = m.PriceState.Size() n += 1 + l + sovOracle(uint64(l)) + if m.ExpiresAt != 0 { + n += 1 + sovOracle(uint64(m.ExpiresAt)) + } return n } @@ -4071,26 +4064,6 @@ func (m *Params) Unmarshal(dAtA []byte) error { } m.ChainlinkVerifierProxyContract = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AcceptUnverifiedChainlinkDataStreamsReports", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowOracle - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AcceptUnverifiedChainlinkDataStreamsReports = bool(v != 0) case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field ChainlinkDataStreamsVerificationGasLimit", wireType) @@ -6211,6 +6184,25 @@ func (m *ChainlinkDataStreamsPriceState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpiresAt", wireType) + } + m.ExpiresAt = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpiresAt |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipOracle(dAtA[iNdEx:]) diff --git a/chain/oracle/types/params.go b/chain/oracle/types/params.go index d7ab55c0..d10a83ac 100644 --- a/chain/oracle/types/params.go +++ b/chain/oracle/types/params.go @@ -52,10 +52,9 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { // DefaultParams returns a default set of parameters. func DefaultParams() Params { return Params{ - PythContract: "", - ChainlinkVerifierProxyContract: "", - AcceptUnverifiedChainlinkDataStreamsReports: true, - ChainlinkDataStreamsVerificationGasLimit: 500_000, + PythContract: "", + ChainlinkVerifierProxyContract: "", + ChainlinkDataStreamsVerificationGasLimit: 500_000, } } diff --git a/chain/oracle/types/pyth.go b/chain/oracle/types/pyth.go new file mode 100644 index 00000000..8e8b5ccd --- /dev/null +++ b/chain/oracle/types/pyth.go @@ -0,0 +1,75 @@ +package types + +import ( + "cosmossdk.io/math" + "github.com/ethereum/go-ethereum/common" +) + +func NewPythPriceState( + priceID common.Hash, + emaPrice, emaConf, conf math.LegacyDec, + publishTime int64, + price math.LegacyDec, + blockTime int64, +) *PythPriceState { + return &PythPriceState{ + PriceId: priceID.Hex(), + EmaPrice: emaPrice, + EmaConf: emaConf, + Conf: conf, + PublishTime: uint64(publishTime), + PriceState: *NewPriceState(price, blockTime), + } +} + +func (p *PythPriceState) Update( + emaPrice, emaConf, conf math.LegacyDec, + publishTime uint64, + price math.LegacyDec, + blockTime int64, +) { + p.EmaPrice = emaPrice + p.EmaConf = emaConf + p.Conf = conf + p.PublishTime = publishTime + p.PriceState.UpdatePrice(price, blockTime) +} + +func (p *PriceAttestation) GetPriceID() string { + return p.PriceId +} + +func (p *PriceAttestation) GetPriceIDHash() common.Hash { + return common.HexToHash(p.PriceId) +} + +func (p *PriceAttestation) Validate() error { + if len(p.GetPriceIDHash().Bytes()) != 32 { + return ErrInvalidPythPriceID + } + + if !(p.Price > 0) { + return ErrBadPrice + } + + if p.Expo > MaxPythExponent || p.Expo < MinPythExponent { + return ErrInvalidPythExponent + } + + if !(p.PublishTime > 0) { + return ErrInvalidPythPublishTime + } + + // validating EMA price/conf is omitted since it's not mission critical and we don't want to block normal price updates + return nil +} + +func GetExponentiatedDec(value, expo int64) math.LegacyDec { + // price * 10^-expo + if expo <= 0 { + return math.LegacyNewDecWithPrec(value, -expo) + } + + // price * 10^expo + return math.LegacyNewDec(value).Mul(math.LegacyNewDec(10).Power(uint64(expo))) +} diff --git a/chain/peggy/types/genesis.pb.go b/chain/peggy/types/genesis.pb.go index f64d7186..214845ac 100644 --- a/chain/peggy/types/genesis.pb.go +++ b/chain/peggy/types/genesis.pb.go @@ -42,6 +42,8 @@ type GenesisState struct { LastObservedValset Valset `protobuf:"bytes,14,opt,name=last_observed_valset,json=lastObservedValset,proto3" json:"last_observed_valset"` EthereumBlacklist []string `protobuf:"bytes,15,rep,name=ethereum_blacklist,json=ethereumBlacklist,proto3" json:"ethereum_blacklist,omitempty"` RateLimits []*RateLimit `protobuf:"bytes,16,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"` + RateLimitTransfers []*RateLimitTransfers `protobuf:"bytes,17,rep,name=rate_limit_transfers,json=rateLimitTransfers,proto3" json:"rate_limit_transfers,omitempty"` + MintAmounts []*MintAmount `protobuf:"bytes,18,rep,name=mint_amounts,json=mintAmounts,proto3" json:"mint_amounts,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -189,6 +191,20 @@ func (m *GenesisState) GetRateLimits() []*RateLimit { return nil } +func (m *GenesisState) GetRateLimitTransfers() []*RateLimitTransfers { + if m != nil { + return m.RateLimitTransfers + } + return nil +} + +func (m *GenesisState) GetMintAmounts() []*MintAmount { + if m != nil { + return m.MintAmounts + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.peggy.v1.GenesisState") } @@ -196,50 +212,53 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/genesis.proto", fileDescriptor_3b8a70f18b346efa) } var fileDescriptor_3b8a70f18b346efa = []byte{ - // 690 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x94, 0x5d, 0x4f, 0xdb, 0x3e, - 0x14, 0xc6, 0xdb, 0x3f, 0xfc, 0x79, 0x31, 0x6f, 0xc3, 0xbc, 0x28, 0xaa, 0x44, 0xa9, 0x06, 0x9a, - 0xb8, 0xa1, 0xa1, 0x65, 0xb7, 0x9b, 0x44, 0x19, 0x1a, 0x6c, 0x30, 0x50, 0x40, 0x9b, 0xb4, 0x9b, - 0xc8, 0x49, 0x0e, 0xa9, 0xb7, 0x24, 0xae, 0x7c, 0xdc, 0x08, 0xbe, 0xc5, 0x3e, 0xd2, 0x2e, 0xb9, - 0xe4, 0x72, 0x57, 0xd3, 0x04, 0x5f, 0x64, 0x8a, 0xe3, 0x94, 0x56, 0x4b, 0xb9, 0xb3, 0xf3, 0xfc, - 0x9e, 0xe7, 0x9c, 0xda, 0xa7, 0x26, 0x0d, 0x9e, 0x7c, 0x03, 0x5f, 0xf1, 0x14, 0xec, 0x1e, 0x84, - 0xe1, 0xad, 0x9d, 0xb6, 0xec, 0x10, 0x12, 0x40, 0x8e, 0xcd, 0x9e, 0x14, 0x4a, 0x50, 0x3a, 0x20, - 0x9a, 0x9a, 0x68, 0xa6, 0xad, 0xda, 0x6a, 0x28, 0x42, 0xa1, 0x65, 0x3b, 0x5b, 0xe5, 0x64, 0xad, - 0x5e, 0x92, 0xa5, 0x6e, 0x7b, 0x60, 0x92, 0x6a, 0x1b, 0x25, 0x7a, 0x8c, 0x21, 0x3e, 0x63, 0xf7, - 0x98, 0xf2, 0xbb, 0x46, 0xdf, 0x2e, 0xd1, 0x99, 0x52, 0x80, 0x8a, 0x29, 0x2e, 0x12, 0x43, 0x6d, - 0x96, 0x50, 0x3d, 0x26, 0x59, 0x5c, 0x94, 0xd9, 0x2a, 0x01, 0x24, 0x53, 0xe0, 0x46, 0x3c, 0xe6, - 0xaa, 0xe8, 0xc5, 0x17, 0x18, 0x0b, 0xb4, 0x3d, 0x86, 0x60, 0xa7, 0x2d, 0x0f, 0x14, 0x6b, 0xd9, - 0xbe, 0xe0, 0xa6, 0xca, 0xcb, 0x9f, 0x33, 0x64, 0xfe, 0x7d, 0x7e, 0x4c, 0x97, 0x8a, 0x29, 0xa0, - 0x6d, 0x32, 0x95, 0x57, 0xb1, 0xaa, 0x8d, 0xea, 0xce, 0x5c, 0xbb, 0xd6, 0xfc, 0xf7, 0xd8, 0x9a, - 0x17, 0x9a, 0x70, 0x0c, 0x49, 0x9b, 0x64, 0x25, 0x62, 0xa8, 0x5c, 0xe1, 0x21, 0xc8, 0x14, 0x02, - 0x37, 0x11, 0x89, 0x0f, 0xd6, 0x7f, 0x8d, 0xea, 0xce, 0xa4, 0xb3, 0x9c, 0x49, 0xe7, 0x46, 0xf9, - 0x94, 0x09, 0xf4, 0x35, 0x99, 0x4e, 0x59, 0x84, 0xa0, 0xd0, 0x9a, 0x68, 0x4c, 0x8c, 0x2b, 0xf2, - 0x59, 0x23, 0x4e, 0x81, 0xd2, 0x33, 0xb2, 0x94, 0x2f, 0x5d, 0x5f, 0x24, 0xd7, 0x5c, 0xc6, 0x68, - 0x4d, 0x6a, 0xf7, 0x76, 0x99, 0xfb, 0x0c, 0xc3, 0x3c, 0xe0, 0x30, 0x87, 0x9d, 0xc5, 0x74, 0x78, - 0x8b, 0xf4, 0x0d, 0x99, 0xd6, 0x97, 0x02, 0x68, 0xfd, 0xaf, 0x63, 0xb6, 0xca, 0x62, 0xce, 0xfb, - 0x2a, 0x14, 0x3c, 0x09, 0xaf, 0x6e, 0x3a, 0x19, 0xec, 0x14, 0x1e, 0xfa, 0x81, 0x2c, 0xea, 0xe5, - 0x53, 0x33, 0x53, 0xe3, 0x53, 0xce, 0x30, 0x34, 0x75, 0xf3, 0x94, 0x05, 0x6d, 0x1d, 0xb4, 0x72, - 0x48, 0xe6, 0x87, 0xee, 0x1f, 0xad, 0x69, 0x9d, 0xb4, 0x59, 0x96, 0x74, 0xf0, 0xc4, 0x39, 0x23, - 0x26, 0x7a, 0x4d, 0xd6, 0x85, 0xcc, 0x5a, 0x53, 0x92, 0x29, 0x21, 0x5d, 0x16, 0x04, 0x12, 0x10, - 0x01, 0xad, 0x19, 0x1d, 0x67, 0x8f, 0x69, 0xec, 0x12, 0xd4, 0xf9, 0x90, 0xef, 0xa0, 0xb0, 0x39, - 0x6b, 0xa2, 0xec, 0x33, 0x3d, 0x26, 0x4b, 0x20, 0xfd, 0xf6, 0x9e, 0xab, 0x84, 0x1b, 0x40, 0x22, - 0x62, 0xb4, 0x66, 0x75, 0x81, 0x46, 0x59, 0x81, 0x23, 0xe7, 0xb0, 0xbd, 0x77, 0x25, 0xde, 0x65, - 0xa0, 0xb3, 0xa0, 0x8d, 0x66, 0x87, 0xf4, 0x0b, 0x59, 0xe9, 0x27, 0xf9, 0x79, 0x06, 0xae, 0x92, - 0x2c, 0xc1, 0x6b, 0x90, 0x68, 0x11, 0x9d, 0xf6, 0xea, 0xd9, 0xdb, 0x30, 0xf0, 0xd5, 0x8d, 0x43, - 0x07, 0x11, 0xc5, 0x47, 0xa4, 0x07, 0x64, 0x63, 0x74, 0x1e, 0x41, 0x75, 0x41, 0x42, 0x3f, 0x76, - 0xbb, 0xc0, 0xc3, 0xae, 0xb2, 0xe6, 0xf4, 0x64, 0xd6, 0x86, 0x27, 0xf3, 0xc8, 0x20, 0xc7, 0x9a, - 0xa0, 0xfb, 0x64, 0x3d, 0x8f, 0x30, 0x15, 0xdd, 0xfc, 0xb2, 0x79, 0x60, 0xcd, 0x6b, 0xaf, 0x1e, - 0xf8, 0xa2, 0x1d, 0x7d, 0xa9, 0x27, 0x01, 0x6d, 0x91, 0xb5, 0x51, 0x53, 0x4f, 0x88, 0x28, 0xf3, - 0x2c, 0x68, 0x0f, 0x1d, 0xf6, 0x5c, 0x08, 0x11, 0x9d, 0x04, 0xd4, 0x21, 0xab, 0xa3, 0xad, 0xe6, - 0x53, 0x6a, 0x2d, 0x8e, 0xff, 0xf3, 0xe5, 0x63, 0xdd, 0x99, 0xbc, 0xfb, 0xbd, 0x59, 0x31, 0x99, - 0xc6, 0x9c, 0x2b, 0x74, 0x97, 0xd0, 0xc1, 0x0f, 0xf6, 0x22, 0xe6, 0x7f, 0x8f, 0x38, 0x2a, 0x6b, - 0xa9, 0x31, 0xb1, 0x33, 0xeb, 0x2c, 0x17, 0x4a, 0xa7, 0x10, 0xe8, 0x5b, 0x32, 0xf7, 0xf4, 0x6c, - 0xa0, 0xf5, 0x42, 0x1f, 0xff, 0x46, 0x59, 0x65, 0x87, 0x29, 0x38, 0xcd, 0x28, 0x87, 0xc8, 0x62, - 0x89, 0x1d, 0xb8, 0x7b, 0xa8, 0x57, 0xef, 0x1f, 0xea, 0xd5, 0x3f, 0x0f, 0xf5, 0xea, 0x8f, 0xc7, - 0x7a, 0xe5, 0xfe, 0xb1, 0x5e, 0xf9, 0xf5, 0x58, 0xaf, 0x7c, 0xfd, 0x18, 0x72, 0xd5, 0xed, 0x7b, - 0x4d, 0x5f, 0xc4, 0xf6, 0x49, 0x11, 0x77, 0xca, 0x3c, 0xb4, 0x07, 0xe1, 0xbb, 0xbe, 0x90, 0x30, - 0xbc, 0xed, 0x32, 0x9e, 0xd8, 0xb1, 0x08, 0xfa, 0x11, 0xa0, 0x79, 0xd7, 0xf4, 0xd3, 0xeb, 0x4d, - 0xe9, 0x07, 0x6b, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0x8f, 0x99, 0x54, 0xe9, 0x05, + // 738 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x95, 0xdd, 0x4e, 0x1b, 0x39, + 0x14, 0xc7, 0x93, 0x85, 0x85, 0xc5, 0x09, 0xb0, 0x98, 0x0f, 0x59, 0x91, 0x18, 0xa2, 0x05, 0xad, + 0xb8, 0x21, 0x43, 0xc2, 0xde, 0xee, 0x4a, 0x09, 0x8b, 0x16, 0xb6, 0x50, 0x90, 0x41, 0x6d, 0xd5, + 0x9b, 0x91, 0x67, 0xc6, 0x4c, 0xdc, 0xce, 0x8c, 0x23, 0x1f, 0x27, 0x82, 0xb7, 0xe8, 0x63, 0x71, + 0xc9, 0x65, 0x6f, 0x5a, 0x55, 0xf0, 0x22, 0xd5, 0x78, 0x3e, 0x92, 0x88, 0x09, 0x77, 0xb6, 0xcf, + 0xef, 0xff, 0x3f, 0x27, 0x3e, 0x27, 0x1e, 0xd4, 0x14, 0xf1, 0x27, 0xee, 0x69, 0x31, 0xe2, 0xf6, + 0x80, 0x07, 0xc1, 0xbd, 0x3d, 0x6a, 0xdb, 0x01, 0x8f, 0x39, 0x08, 0x68, 0x0d, 0x94, 0xd4, 0x12, + 0xe3, 0x82, 0x68, 0x19, 0xa2, 0x35, 0x6a, 0x37, 0x36, 0x02, 0x19, 0x48, 0x13, 0xb6, 0x93, 0x55, + 0x4a, 0x36, 0xac, 0x12, 0x2f, 0x7d, 0x3f, 0xe0, 0x99, 0x53, 0x63, 0xbb, 0x24, 0x1e, 0x41, 0x00, + 0xaf, 0xc8, 0x5d, 0xa6, 0xbd, 0x7e, 0x16, 0xdf, 0x2b, 0x89, 0x33, 0xad, 0x39, 0x68, 0xa6, 0x85, + 0x8c, 0x33, 0x6a, 0xa7, 0x84, 0x1a, 0x30, 0xc5, 0xa2, 0x3c, 0xcd, 0x6e, 0x09, 0xa0, 0x98, 0xe6, + 0x4e, 0x28, 0x22, 0xa1, 0xf3, 0x5a, 0x3c, 0x09, 0x91, 0x04, 0xdb, 0x65, 0xc0, 0xed, 0x51, 0xdb, + 0xe5, 0x9a, 0xb5, 0x6d, 0x4f, 0x8a, 0x2c, 0xcb, 0x1f, 0xdf, 0x96, 0x50, 0xfd, 0xbf, 0xf4, 0x9a, + 0xae, 0x35, 0xd3, 0x1c, 0x77, 0xd0, 0x42, 0x9a, 0x85, 0x54, 0x9b, 0xd5, 0xfd, 0x5a, 0xa7, 0xd1, + 0x7a, 0x79, 0x6d, 0xad, 0x2b, 0x43, 0xd0, 0x8c, 0xc4, 0x2d, 0xb4, 0x1e, 0x32, 0xd0, 0x8e, 0x74, + 0x81, 0xab, 0x11, 0xf7, 0x9d, 0x58, 0xc6, 0x1e, 0x27, 0xbf, 0x34, 0xab, 0xfb, 0xf3, 0x74, 0x2d, + 0x09, 0x5d, 0x66, 0x91, 0xb7, 0x49, 0x00, 0xff, 0x85, 0x16, 0x47, 0x2c, 0x04, 0xae, 0x81, 0xcc, + 0x35, 0xe7, 0x66, 0x25, 0x79, 0x67, 0x10, 0x9a, 0xa3, 0xf8, 0x02, 0xad, 0xa6, 0x4b, 0xc7, 0x93, + 0xf1, 0xad, 0x50, 0x11, 0x90, 0x79, 0xa3, 0xde, 0x2b, 0x53, 0x5f, 0x40, 0x90, 0x1a, 0x1c, 0xa7, + 0x30, 0x5d, 0x19, 0x4d, 0x6e, 0x01, 0xff, 0x8d, 0x16, 0x4d, 0x53, 0x38, 0x90, 0x5f, 0x8d, 0xcd, + 0x6e, 0x99, 0xcd, 0xe5, 0x50, 0x07, 0x52, 0xc4, 0xc1, 0xcd, 0x5d, 0x2f, 0x81, 0x69, 0xae, 0xc1, + 0xff, 0xa3, 0x15, 0xb3, 0x1c, 0x17, 0xb3, 0x30, 0xdb, 0xe5, 0x02, 0x82, 0x2c, 0x6f, 0xea, 0xb2, + 0x6c, 0xa4, 0x45, 0x29, 0xc7, 0xa8, 0x3e, 0xd1, 0x7f, 0x20, 0x8b, 0xc6, 0x69, 0xa7, 0xcc, 0xa9, + 0x3b, 0xe6, 0xe8, 0x94, 0x08, 0xdf, 0xa2, 0x2d, 0xa9, 0x92, 0xd2, 0xb4, 0x62, 0x5a, 0x2a, 0x87, + 0xf9, 0xbe, 0xe2, 0x00, 0x1c, 0xc8, 0x6f, 0xc6, 0xce, 0x9e, 0x51, 0xd8, 0x35, 0xd7, 0x97, 0x13, + 0xba, 0x6e, 0x2e, 0xa3, 0x9b, 0xb2, 0xec, 0x18, 0x9f, 0xa2, 0x55, 0xae, 0xbc, 0xce, 0xa1, 0xa3, + 0xa5, 0xe3, 0xf3, 0x58, 0x46, 0x40, 0x96, 0x4c, 0x82, 0x66, 0x59, 0x82, 0x13, 0x7a, 0xdc, 0x39, + 0xbc, 0x91, 0xff, 0x26, 0x20, 0x5d, 0x36, 0xc2, 0x6c, 0x07, 0xf8, 0x3d, 0x5a, 0x1f, 0xc6, 0xe9, + 0x7d, 0xfa, 0x8e, 0x56, 0x2c, 0x86, 0x5b, 0xae, 0x80, 0x20, 0xe3, 0xf6, 0xe7, 0xab, 0xdd, 0xc8, + 0xe0, 0x9b, 0x3b, 0x8a, 0x0b, 0x8b, 0xfc, 0x10, 0x70, 0x17, 0x6d, 0x4f, 0xcf, 0x23, 0xd7, 0x7d, + 0xae, 0xf8, 0x30, 0x72, 0xfa, 0x5c, 0x04, 0x7d, 0x4d, 0x6a, 0x66, 0x32, 0x1b, 0x93, 0x93, 0x79, + 0x92, 0x21, 0xa7, 0x86, 0xc0, 0x47, 0x68, 0x2b, 0xb5, 0xc8, 0x32, 0x3a, 0x69, 0xb3, 0x85, 0x4f, + 0xea, 0x46, 0x6b, 0x06, 0x3e, 0x2f, 0xc7, 0x34, 0xf5, 0xcc, 0xc7, 0x6d, 0xb4, 0x39, 0x2d, 0x1a, + 0x48, 0x19, 0x26, 0x9a, 0x65, 0xa3, 0xc1, 0x93, 0x9a, 0x2b, 0x29, 0xc3, 0x33, 0x1f, 0x53, 0xb4, + 0x31, 0x5d, 0x6a, 0x3a, 0xa5, 0x64, 0x65, 0xf6, 0x9f, 0x2f, 0x1d, 0xeb, 0xde, 0xfc, 0xc3, 0xf7, + 0x9d, 0x4a, 0xe6, 0x99, 0x89, 0xd3, 0x08, 0x3e, 0x40, 0xb8, 0xf8, 0xc1, 0x6e, 0xc8, 0xbc, 0xcf, + 0xa1, 0x00, 0x4d, 0x56, 0x9b, 0x73, 0xfb, 0x4b, 0x74, 0x2d, 0x8f, 0xf4, 0xf2, 0x00, 0xfe, 0x07, + 0xd5, 0xc6, 0xcf, 0x06, 0x90, 0xdf, 0xcd, 0xf5, 0x6f, 0x97, 0x65, 0xa6, 0x4c, 0xf3, 0xf3, 0x84, + 0xa2, 0x48, 0xe5, 0x4b, 0xc0, 0x1f, 0xd0, 0xc6, 0x58, 0x3f, 0xd1, 0xc7, 0xb5, 0xd9, 0x7d, 0x2c, + 0x8c, 0x8a, 0x9e, 0x51, 0xac, 0x5e, 0x9c, 0xe1, 0x2e, 0xaa, 0x47, 0x22, 0xd6, 0x0e, 0x8b, 0xe4, + 0x30, 0xd6, 0x40, 0xb0, 0x71, 0xb4, 0x4a, 0x07, 0x59, 0xc4, 0xba, 0x6b, 0x30, 0x5a, 0x8b, 0x8a, + 0x35, 0xf4, 0xf8, 0xc3, 0x93, 0x55, 0x7d, 0x7c, 0xb2, 0xaa, 0x3f, 0x9e, 0xac, 0xea, 0x97, 0x67, + 0xab, 0xf2, 0xf8, 0x6c, 0x55, 0xbe, 0x3e, 0x5b, 0x95, 0x8f, 0x6f, 0x02, 0xa1, 0xfb, 0x43, 0xb7, + 0xe5, 0xc9, 0xc8, 0x3e, 0xcb, 0x0d, 0xcf, 0x99, 0x0b, 0x76, 0x61, 0x7f, 0xe0, 0x49, 0xc5, 0x27, + 0xb7, 0x7d, 0x26, 0x62, 0x3b, 0x92, 0xfe, 0x30, 0xe4, 0x90, 0x3d, 0xba, 0xe6, 0xbb, 0xe0, 0x2e, + 0x98, 0xd7, 0xf4, 0xe8, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x62, 0x07, 0xe9, 0x80, 0x86, 0x06, 0x00, 0x00, } @@ -263,6 +282,38 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.MintAmounts) > 0 { + for iNdEx := len(m.MintAmounts) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MintAmounts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + } + if len(m.RateLimitTransfers) > 0 { + for iNdEx := len(m.RateLimitTransfers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RateLimitTransfers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + } if len(m.RateLimits) > 0 { for iNdEx := len(m.RateLimits) - 1; iNdEx >= 0; iNdEx-- { { @@ -540,6 +591,18 @@ func (m *GenesisState) Size() (n int) { n += 2 + l + sovGenesis(uint64(l)) } } + if len(m.RateLimitTransfers) > 0 { + for _, e := range m.RateLimitTransfers { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.MintAmounts) > 0 { + for _, e := range m.MintAmounts { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -1061,6 +1124,74 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RateLimitTransfers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RateLimitTransfers = append(m.RateLimitTransfers, &RateLimitTransfers{}) + if err := m.RateLimitTransfers[len(m.RateLimitTransfers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MintAmounts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MintAmounts = append(m.MintAmounts, &MintAmount{}) + if err := m.MintAmounts[len(m.MintAmounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/peggy/types/key.go b/chain/peggy/types/key.go index d54a2438..2c93ed30 100644 --- a/chain/peggy/types/key.go +++ b/chain/peggy/types/key.go @@ -117,8 +117,11 @@ var ( // FakeCheckpointKey indexes eth signature checkpoints that never existed FakeCheckpointKey = []byte{0x1d} - RateLimitsKey = []byte{0x1e} - MintAmountsERC20Key = []byte{0x1f} + RateLimitKey = []byte{0x1e} + MintAmountERC20Key = []byte{0x1f} + RateLimitInflowKey = []byte{0x20} + RateLimitOutflowKey = []byte{0x21} + RateLimitNetOutflowKey = []byte{0x22} ) func GetEthereumBlacklistStoreKey(addr common.Address) []byte { @@ -308,9 +311,57 @@ func GetFakeCheckpointKey(checkpoint, addr []byte) []byte { return k } +func GetRateLimitKey(erc20 []byte) []byte { + k := make([]byte, 0, len(RateLimitKey)+len(erc20)) + k = append(k, RateLimitKey...) + k = append(k, erc20...) + + return k +} + func GetMintAmountERC20Key(erc20 []byte) []byte { - k := make([]byte, 0, len(MintAmountsERC20Key)+len(erc20)) - k = append(k, MintAmountsERC20Key...) + k := make([]byte, 0, len(MintAmountERC20Key)+len(erc20)) + k = append(k, MintAmountERC20Key...) + k = append(k, erc20...) + + return k +} + +func GetTokenInflowPrefix(erc20 []byte) []byte { + k := make([]byte, 0, len(RateLimitInflowKey)+len(erc20)) + k = append(k, RateLimitInflowKey...) + k = append(k, erc20...) + + return k +} + +func GetTokenInflowByBlockKey(erc20 []byte, blockNum uint64) []byte { + k := make([]byte, 0, len(RateLimitInflowKey)+len(erc20)+8) + k = append(k, GetTokenInflowPrefix(erc20)...) + k = append(k, UInt64Bytes(blockNum)...) + + return k +} + +func GetTokenOutflowPrefix(erc20 []byte) []byte { + k := make([]byte, 0, len(RateLimitOutflowKey)+len(erc20)) + k = append(k, RateLimitOutflowKey...) + k = append(k, erc20...) + + return k +} + +func GetTokenOutflowByBlockKey(erc20 []byte, blockNum uint64) []byte { + k := make([]byte, 0, len(RateLimitOutflowKey)+len(erc20)+8) + k = append(k, GetTokenOutflowPrefix(erc20)...) + k = append(k, UInt64Bytes(blockNum)...) + + return k +} + +func GetTokenNetOutflowKey(erc20 []byte) []byte { + k := make([]byte, 0, len(RateLimitNetOutflowKey)+len(erc20)) + k = append(k, RateLimitNetOutflowKey...) k = append(k, erc20...) return k diff --git a/chain/peggy/types/msgs.go b/chain/peggy/types/msgs.go index e7d63b2f..1bc49b6e 100644 --- a/chain/peggy/types/msgs.go +++ b/chain/peggy/types/msgs.go @@ -553,8 +553,14 @@ func (msg MsgValsetUpdatedClaim) Route() string { return RouterKey } // Hash implements BridgeDeposit.Hash func (b *MsgValsetUpdatedClaim) ClaimHash() []byte { - path := fmt.Sprintf("%d/%d/%d/%s/", b.ValsetNonce, b.EventNonce, b.BlockHeight, b.Members) - return tmhash.Sum([]byte(path)) + return tmhash.Sum([]byte(fmt.Sprintf("%d/%d/%d/%s/%s/%s", + b.ValsetNonce, + b.EventNonce, + b.BlockHeight, + b.Members, + b.RewardToken, + b.RewardAmount.String(), + ))) } // NewMsgCancelSendToEth returns a new msgMsgCancelSendToEth diff --git a/chain/peggy/types/msgs.pb.go b/chain/peggy/types/msgs.pb.go index dc4381c1..578ae397 100644 --- a/chain/peggy/types/msgs.pb.go +++ b/chain/peggy/types/msgs.pb.go @@ -1596,7 +1596,7 @@ type MsgCreateRateLimit struct { // the notional USD limit imposed on all outgoing traffic (per token) RateLimitUsd cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=rate_limit_usd,json=rateLimitUsd,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"rate_limit_usd"` // the absolute amount of tokens that can be minted on Injective - AbsoluteMintLimit cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=absolute_mint_limit,json=absoluteMintLimit,proto3,customtype=cosmossdk.io/math.Int" json:"absolute_mint_limit"` + AbsoluteMintLimit cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=absolute_mint_limit,json=absoluteMintLimit,proto3,customtype=cosmossdk.io/math.Int" json:"absolute_mint_limit"` // Deprecated: Do not use. // length of the sliding window in which inbound (outbound) traffic is // measured RateLimitWindow uint64 `protobuf:"varint,7,opt,name=rate_limit_window,json=rateLimitWindow,proto3" json:"rate_limit_window,omitempty"` @@ -1946,15 +1946,15 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/msgs.proto", fileDescriptor_751daa04abed7ef4) } var fileDescriptor_751daa04abed7ef4 = []byte{ - // 2113 bytes of a gzipped FileDescriptorProto + // 2117 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xcd, 0x6f, 0x1c, 0x49, 0x15, 0x4f, 0x7b, 0xc6, 0x4e, 0x5c, 0x63, 0xc7, 0xa4, 0xd7, 0x49, 0x26, 0x9d, 0xc4, 0x8e, 0xdb, 0xf9, 0xf0, 0x3a, 0x49, 0x4f, 0xec, 0xc0, 0x2e, 0x6b, 0x09, 0xa4, 0x8c, 0x1d, 0x84, 0xd9, 0x78, - 0x89, 0xda, 0xc9, 0xae, 0xc4, 0xa5, 0xa9, 0xe9, 0x7e, 0xe9, 0x69, 0x3c, 0xdd, 0x35, 0x74, 0xd7, - 0x8c, 0xf1, 0x01, 0x69, 0xd9, 0x1b, 0xcb, 0x61, 0x91, 0x38, 0x20, 0x90, 0xe0, 0x02, 0xd7, 0x95, - 0x82, 0x94, 0x0b, 0xdc, 0x91, 0x56, 0x7b, 0x8a, 0xe0, 0x82, 0x10, 0x8a, 0x20, 0x41, 0xca, 0x9f, - 0x01, 0xea, 0xaa, 0xea, 0x9a, 0xee, 0x9e, 0xee, 0xf1, 0x24, 0x6b, 0xe5, 0x62, 0x4d, 0xbd, 0x7a, - 0x55, 0xf5, 0x7b, 0xdf, 0xef, 0xb5, 0xd1, 0x45, 0x2f, 0xf8, 0x11, 0xd8, 0xd4, 0xeb, 0x43, 0xa3, + 0x37, 0x6a, 0x27, 0xbb, 0x12, 0x97, 0xa6, 0xa6, 0xfb, 0xa5, 0xa7, 0xf1, 0x74, 0xd7, 0xd0, 0x5d, + 0x33, 0xc6, 0x07, 0xa4, 0x65, 0x6f, 0x2c, 0x87, 0x45, 0xe2, 0x80, 0x40, 0x82, 0x0b, 0x5c, 0x57, + 0x8a, 0x44, 0x2e, 0x70, 0x47, 0x5a, 0xed, 0x29, 0x82, 0x0b, 0x42, 0x28, 0x82, 0x04, 0x29, 0x7f, + 0x06, 0xa8, 0xab, 0xaa, 0x6b, 0xba, 0x7b, 0xba, 0xc7, 0x93, 0x60, 0xe5, 0x62, 0x4d, 0xbd, 0x7a, + 0x55, 0xf5, 0x7b, 0xdf, 0xef, 0xb5, 0xd1, 0x45, 0x2f, 0xf8, 0x21, 0xd8, 0xd4, 0xeb, 0x43, 0xa3, 0x0b, 0xae, 0x7b, 0xd0, 0xe8, 0xaf, 0x35, 0xfc, 0xc8, 0x8d, 0x8c, 0x6e, 0x48, 0x28, 0x51, 0x55, 0xb9, 0x6d, 0xb0, 0x6d, 0xa3, 0xbf, 0xa6, 0xcd, 0xbb, 0xc4, 0x25, 0x6c, 0xbb, 0x11, 0xff, 0xe2, 0x9c, 0xda, 0x05, 0x97, 0x10, 0xb7, 0x03, 0x0d, 0xdc, 0xf5, 0x1a, 0x38, 0x08, 0x08, 0xc5, 0xd4, @@ -1963,123 +1963,123 @@ var fileDescriptor_751daa04abed7ef4 = []byte{ 0x70, 0x04, 0x8d, 0xfe, 0x5a, 0x0b, 0x28, 0x5e, 0x6b, 0xd8, 0xc4, 0x0b, 0xc4, 0xfe, 0x59, 0xb1, 0xef, 0x47, 0xae, 0xc0, 0x9b, 0x3c, 0xc3, 0x37, 0x2c, 0x8e, 0x8e, 0x2f, 0x92, 0x3b, 0x0b, 0x04, 0xa5, 0x07, 0x5d, 0x48, 0xf6, 0x17, 0x0b, 0xf6, 0xbb, 0x38, 0xc4, 0x7e, 0xc2, 0xb0, 0x5c, 0xc0, - 0x10, 0x62, 0x0a, 0x56, 0xc7, 0xf3, 0x3d, 0xca, 0x99, 0xf4, 0xcf, 0x15, 0x74, 0x7e, 0x27, 0x72, - 0x77, 0x81, 0x7e, 0x3f, 0xb4, 0xdb, 0x10, 0xd1, 0x10, 0x53, 0x12, 0xde, 0x71, 0x9c, 0x10, 0xa2, - 0x08, 0x22, 0xf5, 0x0c, 0x9a, 0x8a, 0x20, 0x70, 0x20, 0xac, 0x2b, 0x97, 0x94, 0x95, 0x69, 0x53, - 0xac, 0x54, 0x1d, 0xcd, 0x90, 0xd4, 0x81, 0xfa, 0x04, 0xdb, 0xcd, 0xd0, 0xd4, 0x45, 0x54, 0x03, - 0xda, 0xb6, 0x30, 0xbf, 0xac, 0x5e, 0x61, 0x2c, 0x08, 0x68, 0x5b, 0x5c, 0xbf, 0xb1, 0xf6, 0xc9, - 0xcb, 0xc7, 0xab, 0xe2, 0xc6, 0x4f, 0x5f, 0x3e, 0x5e, 0x5d, 0xe2, 0x38, 0x47, 0xe0, 0xd1, 0xaf, - 0xa0, 0xe5, 0x11, 0xdb, 0x26, 0x44, 0x5d, 0x12, 0x44, 0xa0, 0xff, 0x59, 0x41, 0x5f, 0xdb, 0x89, - 0xdc, 0x0f, 0x71, 0x27, 0x02, 0xba, 0x49, 0x82, 0x47, 0x5e, 0xe8, 0xab, 0xf3, 0x68, 0x32, 0x20, - 0x81, 0x0d, 0x4c, 0x94, 0xaa, 0xc9, 0x17, 0x47, 0x22, 0x89, 0x7a, 0x01, 0x4d, 0x47, 0x9e, 0x1b, - 0x60, 0xda, 0x0b, 0xa1, 0x5e, 0x65, 0xdb, 0x03, 0xc2, 0xc6, 0x8d, 0x58, 0xce, 0xcc, 0x8d, 0xb1, - 0xb4, 0x67, 0xa4, 0xb4, 0x19, 0x98, 0xba, 0x86, 0xea, 0x79, 0x9a, 0x94, 0xeb, 0x99, 0x82, 0x66, - 0x98, 0xfc, 0x81, 0xf3, 0x80, 0xdc, 0xa5, 0xed, 0x52, 0xfb, 0x9c, 0x43, 0x27, 0x62, 0xc4, 0x0e, - 0x44, 0x54, 0x48, 0x74, 0x1c, 0x68, 0x7b, 0x0b, 0x22, 0xaa, 0xbe, 0x8b, 0xa6, 0xb0, 0x4f, 0x7a, - 0x01, 0x65, 0x72, 0xd4, 0xd6, 0xcf, 0x19, 0xc2, 0xef, 0x62, 0xef, 0x35, 0x84, 0xf7, 0x1a, 0x9b, - 0xc4, 0x0b, 0x9a, 0xd5, 0x2f, 0x9e, 0x2d, 0x1e, 0x33, 0x05, 0xbb, 0xfa, 0x6d, 0x84, 0x5a, 0xa1, - 0xe7, 0xb8, 0x60, 0x3d, 0x02, 0x2e, 0xe5, 0x18, 0x87, 0xa7, 0xf9, 0x91, 0xef, 0x00, 0x6c, 0xe8, - 0x39, 0x73, 0xab, 0x29, 0x73, 0x0b, 0x79, 0xf4, 0x33, 0x68, 0x3e, 0xbd, 0x96, 0x82, 0xff, 0x04, - 0xcd, 0xed, 0x44, 0xae, 0x09, 0x3f, 0xee, 0x41, 0x44, 0x9b, 0x98, 0xda, 0xed, 0x21, 0xc3, 0x29, - 0x05, 0x86, 0x9b, 0x47, 0x93, 0x0e, 0x04, 0xc4, 0x17, 0x3a, 0xe0, 0x8b, 0x8d, 0xeb, 0x85, 0xf6, - 0x38, 0x2d, 0xe1, 0xa4, 0x9f, 0xd1, 0xcf, 0xa1, 0xb3, 0x39, 0x92, 0x04, 0xf5, 0x2f, 0x85, 0xa1, - 0x12, 0x46, 0xe2, 0xa8, 0x8a, 0x9d, 0xec, 0x0a, 0x3a, 0x49, 0xc9, 0x1e, 0x04, 0x96, 0x4d, 0x02, - 0x1a, 0x62, 0x3b, 0x31, 0xca, 0x2c, 0xa3, 0x6e, 0x0a, 0xa2, 0x7a, 0x11, 0xc5, 0x4e, 0x65, 0xc5, - 0x9e, 0x03, 0xa1, 0x70, 0xb3, 0x69, 0xa0, 0xed, 0x5d, 0x46, 0x18, 0x92, 0xb8, 0x5a, 0x20, 0x71, - 0xc6, 0x13, 0x27, 0xf3, 0x9e, 0x78, 0x98, 0xe4, 0x69, 0x51, 0x84, 0xe4, 0x69, 0x92, 0x94, 0xfc, - 0xe7, 0x15, 0x26, 0xf9, 0x16, 0x74, 0x49, 0xe4, 0xd1, 0xcd, 0x0e, 0xf6, 0x7c, 0x16, 0x24, 0x7d, - 0x08, 0xa8, 0x95, 0x96, 0x1f, 0x31, 0xd2, 0x07, 0x4c, 0x09, 0x4b, 0x68, 0xa6, 0xd5, 0x21, 0xf6, - 0x9e, 0xd5, 0x06, 0xcf, 0x6d, 0x73, 0x15, 0x54, 0xcd, 0x1a, 0xa3, 0x7d, 0x97, 0x91, 0x0a, 0xf4, - 0x54, 0x29, 0xd2, 0xd3, 0x37, 0xa4, 0x0b, 0x33, 0x15, 0x34, 0x2f, 0xc6, 0xae, 0xf6, 0xcf, 0x67, - 0x8b, 0xa7, 0xb9, 0x33, 0x46, 0xce, 0x9e, 0xe1, 0x91, 0x86, 0x8f, 0x69, 0xdb, 0xd8, 0x0e, 0xa8, - 0x74, 0xe0, 0x6b, 0x68, 0x0e, 0x68, 0x1b, 0x42, 0xe8, 0xf9, 0x96, 0x88, 0x1a, 0xae, 0xa1, 0x93, - 0x09, 0x79, 0x97, 0x47, 0xcf, 0x35, 0x34, 0x27, 0x12, 0x73, 0x08, 0x36, 0x78, 0x7d, 0x08, 0xeb, - 0x53, 0x9c, 0x91, 0x93, 0x4d, 0x41, 0x1d, 0xb2, 0xc8, 0xf1, 0x02, 0x8b, 0xa8, 0xa8, 0xea, 0x60, - 0x8a, 0xeb, 0x27, 0xd8, 0x1e, 0xfb, 0xbd, 0xf1, 0xbd, 0x2f, 0x9f, 0xdc, 0x3c, 0x9f, 0x14, 0x28, - 0x1e, 0x33, 0x77, 0x05, 0x04, 0xa6, 0xcc, 0x43, 0xcc, 0x94, 0xd6, 0xbb, 0x30, 0x53, 0x9a, 0x24, - 0xcd, 0xf4, 0xd9, 0x04, 0x4b, 0x83, 0x1f, 0x79, 0xb4, 0xed, 0x84, 0x78, 0xff, 0xe8, 0xec, 0xb4, - 0x88, 0x6a, 0xad, 0xd8, 0x21, 0xc4, 0x1d, 0x15, 0x7e, 0x07, 0x23, 0x7d, 0x50, 0xe2, 0xf0, 0xd5, - 0x22, 0x43, 0xe6, 0xf5, 0x37, 0x39, 0xac, 0xbf, 0x8d, 0xf7, 0x5f, 0x47, 0x57, 0x83, 0xe4, 0x9a, - 0x11, 0x5e, 0x24, 0xd7, 0x0c, 0x4d, 0x6a, 0xeb, 0xc5, 0x04, 0x3a, 0xbd, 0x13, 0xb9, 0x77, 0xcd, - 0xcd, 0xf5, 0x5b, 0x5b, 0xd0, 0xed, 0x90, 0x03, 0x70, 0x8e, 0x4e, 0x65, 0x4b, 0x68, 0x46, 0xf8, - 0x14, 0xcf, 0x48, 0xdc, 0xb1, 0x6b, 0x9c, 0xb6, 0x15, 0x93, 0xc6, 0x55, 0x9a, 0x8a, 0xaa, 0x01, - 0xf6, 0x93, 0xe8, 0x66, 0xbf, 0x59, 0x1d, 0x38, 0xf0, 0x5b, 0xa4, 0x23, 0x1c, 0x55, 0xac, 0x54, - 0x0d, 0x9d, 0x70, 0xc0, 0xf6, 0x7c, 0xdc, 0x89, 0x98, 0x73, 0x56, 0x4d, 0xb9, 0x1e, 0x52, 0xfe, - 0x89, 0x02, 0xe5, 0xdf, 0x7f, 0x1d, 0xe5, 0x9f, 0x97, 0xca, 0x1f, 0xd6, 0xa5, 0xbe, 0x88, 0x2e, - 0x16, 0x6e, 0x48, 0x33, 0xfc, 0x14, 0xa9, 0x71, 0xda, 0xc1, 0x81, 0x0d, 0x9d, 0x41, 0xa1, 0x8b, - 0x75, 0x13, 0xe2, 0x20, 0xc2, 0x76, 0xdc, 0xa6, 0x59, 0x9e, 0x23, 0xac, 0x30, 0x9b, 0xa2, 0x6e, - 0x3b, 0xa9, 0x7a, 0x38, 0x91, 0xae, 0x87, 0x1b, 0x2b, 0xb9, 0xda, 0x53, 0x1f, 0xa4, 0xbc, 0xec, - 0x43, 0xfa, 0x05, 0xa4, 0x0d, 0x53, 0x25, 0xb8, 0xff, 0x28, 0x0c, 0xfe, 0x6e, 0xaf, 0xe5, 0x7b, - 0xb4, 0x89, 0x9d, 0xdd, 0x24, 0xb5, 0xde, 0xed, 0x7b, 0x0e, 0xc4, 0xae, 0xf0, 0x10, 0x1d, 0x8f, - 0x7a, 0xad, 0xb8, 0xf3, 0x62, 0x08, 0x6b, 0xeb, 0xf3, 0x06, 0xef, 0x25, 0x8d, 0xa4, 0x97, 0x34, - 0xee, 0x04, 0x07, 0xcd, 0x2b, 0x5f, 0x3e, 0xb9, 0xb9, 0x34, 0xdc, 0xac, 0x4a, 0xed, 0xb2, 0x94, - 0xef, 0x98, 0xc9, 0x5d, 0xd9, 0xbc, 0x3e, 0x91, 0xcb, 0xeb, 0x29, 0xb1, 0x2b, 0x19, 0xb1, 0x6f, - 0xe7, 0xc4, 0x5e, 0x1e, 0x94, 0xdc, 0x52, 0x09, 0xf4, 0x6b, 0xe8, 0xca, 0x48, 0x06, 0xa9, 0x8c, - 0xdf, 0x56, 0x58, 0xc0, 0xf0, 0x56, 0xe5, 0x61, 0xd7, 0xc1, 0xf4, 0x55, 0x02, 0xa6, 0xcf, 0x8e, - 0x09, 0x0e, 0x11, 0x30, 0x9c, 0x56, 0x1c, 0x53, 0x95, 0xe1, 0x98, 0xfa, 0x16, 0x3a, 0xee, 0x83, - 0xdf, 0x82, 0x30, 0xaa, 0x57, 0x2f, 0x55, 0x56, 0x6a, 0xeb, 0xcb, 0x46, 0x81, 0x4a, 0x9b, 0xac, - 0x03, 0xf9, 0x10, 0x77, 0x3c, 0x27, 0xf6, 0x50, 0x33, 0x39, 0xa3, 0x36, 0xd1, 0x6c, 0x08, 0xfb, - 0x38, 0x74, 0x2c, 0x51, 0x4d, 0x26, 0xc7, 0xa9, 0x26, 0x33, 0xfc, 0xcc, 0x1d, 0x5e, 0x53, 0x96, - 0x90, 0x58, 0x5b, 0x2c, 0x48, 0x45, 0xf8, 0xd5, 0x38, 0xed, 0x41, 0x4c, 0x1a, 0xa7, 0x48, 0x7c, - 0xd5, 0x38, 0x1b, 0x36, 0x81, 0x88, 0xb3, 0xe1, 0x0d, 0x69, 0xbd, 0xcf, 0x79, 0xf7, 0xc2, 0xf7, + 0x10, 0x62, 0x0a, 0x56, 0xc7, 0xf3, 0x3d, 0xca, 0x99, 0xf4, 0x2f, 0x14, 0x74, 0x7e, 0x27, 0x72, + 0x77, 0x81, 0x7e, 0x18, 0xda, 0x6d, 0x88, 0x68, 0x88, 0x29, 0x09, 0xef, 0x38, 0x4e, 0x08, 0x51, + 0x04, 0x91, 0x7a, 0x06, 0x4d, 0x45, 0x10, 0x38, 0x10, 0xd6, 0x95, 0x4b, 0xca, 0xca, 0xb4, 0x29, + 0x56, 0xaa, 0x8e, 0x66, 0x48, 0xea, 0x40, 0x7d, 0x82, 0xed, 0x66, 0x68, 0xea, 0x22, 0xaa, 0x01, + 0x6d, 0x5b, 0x98, 0x5f, 0x56, 0xaf, 0x30, 0x16, 0x04, 0xb4, 0x2d, 0xae, 0xdf, 0x58, 0xfb, 0xf4, + 0xe5, 0xe3, 0x55, 0x71, 0xe3, 0x67, 0x2f, 0x1f, 0xaf, 0x2e, 0x71, 0x9c, 0x23, 0xf0, 0xe8, 0x57, + 0xd0, 0xf2, 0x88, 0x6d, 0x13, 0xa2, 0x2e, 0x09, 0x22, 0xd0, 0xff, 0xa4, 0xa0, 0xaf, 0xed, 0x44, + 0xee, 0x47, 0xb8, 0x13, 0x01, 0xdd, 0x24, 0xc1, 0x23, 0x2f, 0xf4, 0xd5, 0x79, 0x34, 0x19, 0x90, + 0xc0, 0x06, 0x26, 0x4a, 0xd5, 0xe4, 0x8b, 0x23, 0x91, 0x44, 0xbd, 0x80, 0xa6, 0x23, 0xcf, 0x0d, + 0x30, 0xed, 0x85, 0x50, 0xaf, 0xb2, 0xed, 0x01, 0x61, 0xe3, 0x46, 0x2c, 0x67, 0xe6, 0xc6, 0x58, + 0xda, 0x33, 0x52, 0xda, 0x0c, 0x4c, 0x5d, 0x43, 0xf5, 0x3c, 0x4d, 0xca, 0xf5, 0x4c, 0x41, 0x33, + 0x4c, 0xfe, 0xc0, 0x79, 0x40, 0xee, 0xd2, 0x76, 0xa9, 0x7d, 0xce, 0xa1, 0x13, 0x31, 0x62, 0x07, + 0x22, 0x2a, 0x24, 0x3a, 0x0e, 0xb4, 0xbd, 0x05, 0x11, 0x55, 0xdf, 0x45, 0x53, 0xd8, 0x27, 0xbd, + 0x80, 0x32, 0x39, 0x6a, 0xeb, 0xe7, 0x0c, 0xe1, 0x77, 0xb1, 0xf7, 0x1a, 0xc2, 0x7b, 0x8d, 0x4d, + 0xe2, 0x05, 0xcd, 0xea, 0x97, 0xcf, 0x16, 0x8f, 0x99, 0x82, 0x5d, 0xfd, 0x36, 0x42, 0xad, 0xd0, + 0x73, 0x5c, 0xb0, 0x1e, 0x01, 0x97, 0x72, 0x8c, 0xc3, 0xd3, 0xfc, 0xc8, 0x77, 0x00, 0x36, 0xf4, + 0x9c, 0xb9, 0xd5, 0x94, 0xb9, 0x85, 0x3c, 0xfa, 0x19, 0x34, 0x9f, 0x5e, 0x4b, 0xc1, 0x7f, 0x8c, + 0xe6, 0x76, 0x22, 0xd7, 0x84, 0x1f, 0xf5, 0x20, 0xa2, 0x4d, 0x4c, 0xed, 0xf6, 0x90, 0xe1, 0x94, + 0x02, 0xc3, 0xcd, 0xa3, 0x49, 0x07, 0x02, 0xe2, 0x0b, 0x1d, 0xf0, 0xc5, 0xc6, 0xf5, 0x42, 0x7b, + 0x9c, 0x96, 0x70, 0xd2, 0xcf, 0xe8, 0xe7, 0xd0, 0xd9, 0x1c, 0x49, 0x82, 0xfa, 0xa7, 0xc2, 0x50, + 0x09, 0x23, 0x71, 0x54, 0xc5, 0x4e, 0x76, 0x05, 0x9d, 0xa4, 0x64, 0x0f, 0x02, 0xcb, 0x26, 0x01, + 0x0d, 0xb1, 0x9d, 0x18, 0x65, 0x96, 0x51, 0x37, 0x05, 0x51, 0xbd, 0x88, 0x62, 0xa7, 0xb2, 0x62, + 0xcf, 0x81, 0x50, 0xb8, 0xd9, 0x34, 0xd0, 0xf6, 0x2e, 0x23, 0x0c, 0x49, 0x5c, 0x2d, 0x90, 0x38, + 0xe3, 0x89, 0x93, 0x79, 0x4f, 0x3c, 0x4c, 0xf2, 0xb4, 0x28, 0x42, 0xf2, 0x34, 0x49, 0x4a, 0xfe, + 0xb3, 0x0a, 0x93, 0x7c, 0x0b, 0xba, 0x24, 0xf2, 0xe8, 0x66, 0x07, 0x7b, 0x3e, 0x0b, 0x92, 0x3e, + 0x04, 0xd4, 0x4a, 0xcb, 0x8f, 0x18, 0xe9, 0x03, 0xa6, 0x84, 0x25, 0x34, 0xd3, 0xea, 0x10, 0x7b, + 0xcf, 0x6a, 0x83, 0xe7, 0xb6, 0xb9, 0x0a, 0xaa, 0x66, 0x8d, 0xd1, 0xbe, 0xcb, 0x48, 0x05, 0x7a, + 0xaa, 0x14, 0xe9, 0xe9, 0x1b, 0xd2, 0x85, 0x99, 0x0a, 0x9a, 0x17, 0x63, 0x57, 0xfb, 0xc7, 0xb3, + 0xc5, 0xd3, 0xdc, 0x19, 0x23, 0x67, 0xcf, 0xf0, 0x48, 0xc3, 0xc7, 0xb4, 0x6d, 0x6c, 0x07, 0x54, + 0x3a, 0xf0, 0x35, 0x34, 0x07, 0xb4, 0x0d, 0x21, 0xf4, 0x7c, 0x4b, 0x44, 0x0d, 0xd7, 0xd0, 0xc9, + 0x84, 0xbc, 0xcb, 0xa3, 0xe7, 0x1a, 0x9a, 0x13, 0x89, 0x39, 0x04, 0x1b, 0xbc, 0x3e, 0x84, 0xf5, + 0x29, 0xce, 0xc8, 0xc9, 0xa6, 0xa0, 0x0e, 0x59, 0xe4, 0x78, 0x81, 0x45, 0x54, 0x54, 0x75, 0x30, + 0xc5, 0xf5, 0x13, 0x6c, 0x8f, 0xfd, 0xde, 0xf8, 0xde, 0x57, 0x4f, 0x6e, 0x9e, 0x4f, 0x0a, 0x14, + 0x8f, 0x99, 0xbb, 0x02, 0x02, 0x53, 0xe6, 0x21, 0x66, 0x4a, 0xeb, 0x5d, 0x98, 0x29, 0x4d, 0x92, + 0x66, 0xfa, 0x7c, 0x82, 0xa5, 0xc1, 0x8f, 0x3d, 0xda, 0x76, 0x42, 0xbc, 0x7f, 0x74, 0x76, 0x5a, + 0x44, 0xb5, 0x56, 0xec, 0x10, 0xe2, 0x8e, 0x0a, 0xbf, 0x83, 0x91, 0x3e, 0x28, 0x71, 0xf8, 0x6a, + 0x91, 0x21, 0xf3, 0xfa, 0x9b, 0x1c, 0xd6, 0xdf, 0xc6, 0xfb, 0xaf, 0xa3, 0xab, 0x41, 0x72, 0xcd, + 0x08, 0x2f, 0x92, 0x6b, 0x86, 0x26, 0xb5, 0xf5, 0x62, 0x02, 0x9d, 0xde, 0x89, 0xdc, 0xbb, 0xe6, + 0xe6, 0xfa, 0xad, 0x2d, 0xe8, 0x76, 0xc8, 0x01, 0x38, 0x47, 0xa7, 0xb2, 0x25, 0x34, 0x23, 0x7c, + 0x8a, 0x67, 0x24, 0xee, 0xd8, 0x35, 0x4e, 0xdb, 0x8a, 0x49, 0xe3, 0x2a, 0x4d, 0x45, 0xd5, 0x00, + 0xfb, 0x49, 0x74, 0xb3, 0xdf, 0xac, 0x0e, 0x1c, 0xf8, 0x2d, 0xd2, 0x11, 0x8e, 0x2a, 0x56, 0xaa, + 0x86, 0x4e, 0x38, 0x60, 0x7b, 0x3e, 0xee, 0x44, 0xcc, 0x39, 0xab, 0xa6, 0x5c, 0x0f, 0x29, 0xff, + 0x44, 0x81, 0xf2, 0xef, 0xbf, 0x8e, 0xf2, 0xcf, 0x4b, 0xe5, 0x0f, 0xeb, 0x52, 0x5f, 0x44, 0x17, + 0x0b, 0x37, 0xa4, 0x19, 0x7e, 0x82, 0xd4, 0x38, 0xed, 0xe0, 0xc0, 0x86, 0xce, 0xa0, 0xd0, 0xc5, + 0xba, 0x09, 0x71, 0x10, 0x61, 0x3b, 0x6e, 0xd3, 0x2c, 0xcf, 0x11, 0x56, 0x98, 0x4d, 0x51, 0xb7, + 0x9d, 0x54, 0x3d, 0x9c, 0x48, 0xd7, 0xc3, 0x8d, 0x95, 0x5c, 0xed, 0xa9, 0x0f, 0x52, 0x5e, 0xf6, + 0x21, 0xfd, 0x02, 0xd2, 0x86, 0xa9, 0x12, 0xdc, 0xbf, 0x15, 0x06, 0x7f, 0xb7, 0xd7, 0xf2, 0x3d, + 0xda, 0xc4, 0xce, 0x6e, 0x92, 0x5a, 0xef, 0xf6, 0x3d, 0x07, 0x62, 0x57, 0x78, 0x88, 0x8e, 0x47, + 0xbd, 0x56, 0xdc, 0x79, 0x31, 0x84, 0xb5, 0xf5, 0x79, 0x83, 0xf7, 0x92, 0x46, 0xd2, 0x4b, 0x1a, + 0x77, 0x82, 0x83, 0xe6, 0x95, 0xaf, 0x9e, 0xdc, 0x5c, 0x1a, 0x6e, 0x56, 0xa5, 0x76, 0x59, 0xca, + 0x77, 0xcc, 0xe4, 0xae, 0x6c, 0x5e, 0x9f, 0xc8, 0xe5, 0xf5, 0x94, 0xd8, 0x95, 0x8c, 0xd8, 0xb7, + 0x73, 0x62, 0x2f, 0x0f, 0x4a, 0x6e, 0xa9, 0x04, 0xfa, 0x35, 0x74, 0x65, 0x24, 0x83, 0x54, 0xc6, + 0x6f, 0x2a, 0x2c, 0x60, 0x78, 0xab, 0xf2, 0xb0, 0xeb, 0x60, 0xfa, 0x2a, 0x01, 0xd3, 0x67, 0xc7, + 0x04, 0x87, 0x08, 0x18, 0x4e, 0x2b, 0x8e, 0xa9, 0xca, 0x70, 0x4c, 0x7d, 0x0b, 0x1d, 0xf7, 0xc1, + 0x6f, 0x41, 0x18, 0xd5, 0xab, 0x97, 0x2a, 0x2b, 0xb5, 0xf5, 0x65, 0xa3, 0x40, 0xa5, 0x4d, 0xd6, + 0x81, 0x7c, 0x84, 0x3b, 0x9e, 0x13, 0x7b, 0xa8, 0x99, 0x9c, 0x51, 0x9b, 0x68, 0x36, 0x84, 0x7d, + 0x1c, 0x3a, 0x96, 0xa8, 0x26, 0x93, 0xe3, 0x54, 0x93, 0x19, 0x7e, 0xe6, 0x0e, 0xaf, 0x29, 0x4b, + 0x48, 0xac, 0x2d, 0x16, 0xa4, 0x22, 0xfc, 0x6a, 0x9c, 0xf6, 0x20, 0x26, 0x8d, 0x53, 0x24, 0xfe, + 0xdf, 0x38, 0x1b, 0x36, 0x81, 0x88, 0xb3, 0xe1, 0x0d, 0x69, 0xbd, 0x2f, 0x78, 0xf7, 0xc2, 0xf7, 0xee, 0xb3, 0xc9, 0x41, 0x7d, 0x07, 0x4d, 0xe3, 0x1e, 0x6d, 0x93, 0xd0, 0xa3, 0x07, 0xbc, 0xa1, - 0x6a, 0xd6, 0xff, 0xf6, 0xe4, 0xe6, 0xbc, 0x68, 0xf2, 0x44, 0xbb, 0xbb, 0x4b, 0x43, 0x2f, 0x70, + 0x6a, 0xd6, 0xff, 0xfa, 0xe4, 0xe6, 0xbc, 0x68, 0xf2, 0x44, 0xbb, 0xbb, 0x4b, 0x43, 0x2f, 0x70, 0xcd, 0x01, 0xab, 0xfa, 0x4d, 0x34, 0xc5, 0x67, 0x0f, 0x66, 0xc8, 0xda, 0xba, 0x56, 0x64, 0x07, 0xfe, 0x46, 0xd2, 0x54, 0x72, 0x7e, 0x1e, 0x98, 0x83, 0x9b, 0xb2, 0x75, 0x2e, 0x8d, 0x4d, 0xd4, - 0xb9, 0x34, 0x49, 0x8a, 0xf2, 0x3b, 0x1e, 0x95, 0xcd, 0x0e, 0xb6, 0xf7, 0x3a, 0x5e, 0x44, 0x13, + 0xb9, 0x34, 0x49, 0x8a, 0xf2, 0x5b, 0x1e, 0x95, 0xcd, 0x0e, 0xb6, 0xf7, 0x3a, 0x5e, 0x44, 0x13, 0xd5, 0x65, 0xe7, 0x18, 0xde, 0x55, 0x25, 0x7d, 0x32, 0x6f, 0xa9, 0x1a, 0xe8, 0xad, 0x56, 0x72, 0x2a, 0xe9, 0xef, 0x21, 0x96, 0xa2, 0xb2, 0x32, 0x6d, 0xaa, 0x72, 0x4b, 0x5e, 0x94, 0x44, 0x14, - 0x3b, 0x9d, 0x8d, 0xa8, 0xf2, 0xd7, 0x45, 0x44, 0x95, 0x33, 0x48, 0x41, 0x7e, 0xad, 0xb0, 0xec, + 0x3b, 0x9d, 0x8d, 0xa8, 0xf2, 0xd7, 0x45, 0x44, 0x95, 0x33, 0x48, 0x41, 0x7e, 0xa5, 0xb0, 0xec, 0x63, 0x42, 0x9f, 0xec, 0x41, 0xc2, 0x26, 0xcf, 0x1d, 0x9d, 0x14, 0xb7, 0x72, 0x52, 0x5c, 0x4a, - 0xf5, 0xbe, 0x85, 0x4f, 0xeb, 0x97, 0x91, 0x5e, 0xbe, 0x2b, 0xf1, 0xff, 0xa9, 0xc2, 0x93, 0x77, + 0xf5, 0xbe, 0x85, 0x4f, 0xeb, 0x97, 0x91, 0x5e, 0xbe, 0x2b, 0xf1, 0xff, 0xb1, 0xc2, 0x93, 0x77, 0x08, 0x98, 0x82, 0x89, 0x29, 0xdc, 0x8b, 0x67, 0xcd, 0xd7, 0x76, 0xab, 0x65, 0xc4, 0x4b, 0x9f, 0x9c, 0xbc, 0xc4, 0x70, 0xc6, 0x88, 0xc9, 0xec, 0x25, 0xab, 0xa6, 0x2c, 0x74, 0x71, 0xa6, 0x98, 0x15, 0x55, 0x73, 0x2b, 0xa9, 0x76, 0x97, 0x13, 0xb6, 0x6e, 0xe8, 0xd9, 0x10, 0x17, 0x90, 0x6a, 0xea, 0xb2, 0xfb, 0x31, 0x71, 0xdb, 0x51, 0xb7, 0xd1, 0xc9, 0xc1, 0x8c, 0x6c, 0xf5, 0x22, 0x47, 0xe4, 0x84, 0x65, 0x91, 0x13, 0xce, 0x0f, 0xe7, 0x84, 0x7b, 0xe0, 0x62, 0xfb, 0x60, 0x0b, 0x6c, - 0x73, 0x26, 0x4c, 0x24, 0x7e, 0x18, 0x39, 0xea, 0x0e, 0x7a, 0x0b, 0xb7, 0x22, 0xd2, 0xe9, 0x51, - 0xb0, 0x7c, 0x2f, 0xa0, 0xfc, 0x4e, 0x9e, 0x20, 0x0e, 0xcb, 0x31, 0xa7, 0x92, 0x93, 0x3b, 0x5e, - 0x40, 0xb9, 0x0e, 0x57, 0xd1, 0xa9, 0x14, 0xb2, 0x7d, 0x2f, 0x70, 0xc8, 0xbe, 0x28, 0xe9, 0x73, - 0xf2, 0xdd, 0x8f, 0x18, 0x99, 0xb7, 0xf9, 0xd9, 0xa0, 0x4a, 0x15, 0xbc, 0xac, 0x71, 0x92, 0x82, - 0x97, 0xa5, 0x4a, 0x8b, 0x3e, 0x9d, 0x60, 0x16, 0xe5, 0x61, 0xf7, 0x86, 0x2c, 0x7a, 0x1d, 0xa9, - 0x01, 0xec, 0x5b, 0x39, 0x73, 0xf1, 0xca, 0x36, 0x17, 0xc0, 0xfe, 0x83, 0xb4, 0xc5, 0xee, 0x73, - 0xe6, 0x9c, 0xd5, 0xaa, 0xe3, 0x5b, 0x2d, 0xbe, 0xd1, 0x4c, 0x1b, 0x6e, 0x0d, 0x9d, 0xce, 0xdd, - 0x28, 0xb4, 0x3d, 0xc9, 0xb4, 0xad, 0xa6, 0xf9, 0xc7, 0x51, 0x78, 0x4e, 0x77, 0x42, 0xe1, 0x39, - 0xaa, 0x54, 0xf8, 0xef, 0x15, 0xa6, 0x70, 0x13, 0x7c, 0xd2, 0x7f, 0x43, 0x0a, 0x1f, 0x0d, 0x3f, - 0x87, 0x44, 0xc0, 0xcf, 0x51, 0x13, 0xf8, 0xeb, 0xff, 0x53, 0x51, 0x65, 0x27, 0x72, 0xd5, 0xcf, - 0x14, 0x34, 0x9b, 0xfd, 0xfc, 0x72, 0xb9, 0xa8, 0x26, 0xe4, 0xbf, 0x74, 0x68, 0x37, 0xc6, 0xe1, - 0x92, 0xca, 0x5a, 0xfd, 0xe4, 0xef, 0xff, 0xfd, 0xd5, 0xc4, 0x65, 0x5d, 0x6f, 0x14, 0x7c, 0xec, - 0x12, 0x0d, 0x86, 0x2d, 0xde, 0xff, 0x58, 0x41, 0xd3, 0x83, 0x7e, 0xf2, 0x52, 0xc9, 0x3b, 0x92, - 0x43, 0x5b, 0x39, 0x8c, 0x43, 0xa2, 0xb8, 0xc6, 0x50, 0x2c, 0xe9, 0x8b, 0x45, 0x28, 0xe2, 0xe6, - 0xcb, 0xa2, 0xc4, 0x02, 0xda, 0x56, 0x7f, 0xa1, 0xa0, 0x99, 0xcc, 0x37, 0x8c, 0xe5, 0x92, 0x37, - 0xd2, 0x4c, 0xda, 0xf5, 0x31, 0x98, 0x24, 0x96, 0xb7, 0x19, 0x96, 0x65, 0x7d, 0xa9, 0x08, 0x4b, - 0xc8, 0x4f, 0x58, 0x6c, 0x50, 0x63, 0x68, 0x32, 0xdf, 0x2e, 0xca, 0xd0, 0xa4, 0x99, 0x4a, 0xd1, - 0x14, 0x7e, 0x27, 0x18, 0x89, 0x46, 0x18, 0x26, 0x85, 0x26, 0xf3, 0x3d, 0xa1, 0x0c, 0x4d, 0x9a, - 0xa9, 0x14, 0x4d, 0xe1, 0x38, 0x3c, 0x12, 0x8d, 0xc3, 0x4f, 0x58, 0x36, 0x7b, 0x3c, 0x76, 0xdf, - 0xec, 0xd8, 0x5c, 0xe6, 0xbe, 0x19, 0xae, 0x52, 0xf7, 0x2d, 0x9e, 0x38, 0x47, 0xba, 0xef, 0xbe, - 0x38, 0x22, 0x10, 0xfd, 0x41, 0x41, 0xa7, 0xd2, 0xdd, 0x1c, 0x47, 0xf5, 0xf6, 0xc8, 0x70, 0x49, - 0xf7, 0x7d, 0xda, 0xda, 0xd8, 0xac, 0x12, 0xdf, 0x2d, 0x86, 0x6f, 0x55, 0x5f, 0x19, 0x11, 0x5e, - 0x3d, 0x7e, 0x50, 0xa0, 0xfc, 0xa3, 0x82, 0xd4, 0x82, 0x01, 0xba, 0x0c, 0xe6, 0x30, 0x6b, 0x29, - 0xcc, 0x11, 0x13, 0xe3, 0x48, 0x98, 0x10, 0xda, 0xeb, 0xb7, 0x2c, 0x47, 0x1c, 0x14, 0x30, 0xff, - 0xa2, 0xa0, 0x7a, 0xe9, 0x37, 0xef, 0x46, 0x69, 0xe0, 0x17, 0x1f, 0xd0, 0xde, 0x7d, 0xc5, 0x03, - 0x12, 0xf8, 0xd7, 0x19, 0x70, 0x43, 0xbf, 0x51, 0x9c, 0x38, 0xa8, 0x95, 0xee, 0xf8, 0x93, 0x0c, - 0xae, 0xfe, 0x46, 0x41, 0x73, 0xf9, 0xf1, 0xf8, 0x6a, 0x59, 0x54, 0x66, 0xf9, 0x34, 0x63, 0x3c, - 0x3e, 0x89, 0xd0, 0x60, 0x08, 0x57, 0xf4, 0xab, 0x85, 0x01, 0xcc, 0x0e, 0x59, 0xe9, 0x0c, 0xf7, - 0x57, 0x05, 0x69, 0x23, 0x86, 0xe3, 0x32, 0xe3, 0x96, 0x1f, 0xd1, 0xde, 0x7b, 0xe5, 0x23, 0x12, - 0xfc, 0x7b, 0x0c, 0xfc, 0x6d, 0x7d, 0xad, 0x50, 0xbd, 0xec, 0xbc, 0xd5, 0xc2, 0x8e, 0x25, 0xe7, - 0x68, 0x0b, 0x12, 0xa0, 0x3f, 0x44, 0x33, 0x99, 0xc1, 0xa8, 0x2c, 0x19, 0xa5, 0x99, 0x4a, 0x93, - 0x51, 0xd1, 0xcc, 0xa2, 0x7e, 0xaa, 0x20, 0x6d, 0xc4, 0xc0, 0x52, 0xa6, 0xa9, 0xf2, 0x23, 0xa5, - 0x9a, 0x3a, 0x7c, 0xee, 0x50, 0x7f, 0xa6, 0xa0, 0xb3, 0x65, 0x43, 0x87, 0x51, 0x5a, 0x7e, 0x0a, - 0xf9, 0xb5, 0x77, 0x5e, 0x8d, 0x5f, 0x62, 0xf0, 0xd0, 0x5c, 0x7e, 0x6e, 0x28, 0xf5, 0xea, 0x2c, - 0x5f, 0xb9, 0x57, 0x17, 0x37, 0xb5, 0xf1, 0x53, 0xf9, 0x86, 0xf6, 0xea, 0x48, 0xdb, 0x1d, 0xfe, - 0x54, 0x49, 0x3b, 0x17, 0x3f, 0x95, 0x6f, 0xe5, 0xae, 0x96, 0x2a, 0x28, 0xc3, 0xa7, 0x19, 0xe3, - 0xf1, 0x25, 0x4f, 0x69, 0x93, 0x1f, 0xbf, 0x7c, 0xbc, 0xaa, 0x34, 0xe1, 0x8b, 0xe7, 0x0b, 0xca, - 0xd3, 0xe7, 0x0b, 0xca, 0xbf, 0x9f, 0x2f, 0x28, 0xbf, 0x7c, 0xb1, 0x70, 0xec, 0xe9, 0x8b, 0x85, - 0x63, 0xff, 0x78, 0xb1, 0x70, 0xec, 0x07, 0xef, 0xbb, 0x1e, 0x6d, 0xf7, 0x5a, 0x86, 0x4d, 0xfc, - 0xc6, 0x76, 0x72, 0xf5, 0x3d, 0xdc, 0x8a, 0x06, 0xf1, 0x71, 0xd3, 0x26, 0x21, 0xa4, 0x97, 0x6d, - 0xec, 0x05, 0x0d, 0x9f, 0x38, 0xbd, 0x0e, 0x44, 0x22, 0x78, 0xd8, 0x7f, 0x21, 0x5b, 0x53, 0xec, - 0x73, 0xd6, 0xed, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x2d, 0x3d, 0x67, 0x91, 0x1d, 0x00, - 0x00, + 0x73, 0x26, 0x4c, 0x24, 0x7e, 0x18, 0x39, 0xea, 0x87, 0xe8, 0x2d, 0xdc, 0x8a, 0x48, 0xa7, 0x47, + 0xc1, 0xf2, 0xbd, 0x80, 0xf2, 0x3b, 0x79, 0x82, 0x68, 0x2e, 0x8e, 0xcc, 0x31, 0x75, 0xc5, 0x3c, + 0x95, 0x9c, 0xdd, 0xf1, 0x02, 0xca, 0xb5, 0xb8, 0x8a, 0x4e, 0xa5, 0xb0, 0xed, 0x7b, 0x81, 0x43, + 0xf6, 0x45, 0x51, 0x9f, 0x93, 0x2f, 0x7f, 0xcc, 0xc8, 0xbc, 0xd1, 0xcf, 0x86, 0x55, 0xaa, 0xe4, + 0x65, 0xcd, 0x93, 0x94, 0xbc, 0x2c, 0x55, 0xda, 0xf4, 0xe9, 0x04, 0xb3, 0x29, 0x0f, 0xbc, 0x37, + 0x64, 0xd3, 0xeb, 0x48, 0x0d, 0x60, 0xdf, 0xca, 0x19, 0x8c, 0xd7, 0xb6, 0xb9, 0x00, 0xf6, 0x1f, + 0xa4, 0x6d, 0x76, 0x9f, 0x33, 0xe7, 0xec, 0x56, 0x1d, 0xdf, 0x6e, 0xf1, 0x8d, 0x66, 0xda, 0x74, + 0x6b, 0xe8, 0x74, 0xee, 0x46, 0xa1, 0xed, 0x49, 0xa6, 0x6d, 0x35, 0xcd, 0x3f, 0x8e, 0xc2, 0x73, + 0xba, 0x13, 0x0a, 0xcf, 0x51, 0xa5, 0xc2, 0x7f, 0xa7, 0x30, 0x85, 0x9b, 0xe0, 0x93, 0xfe, 0x1b, + 0x52, 0xf8, 0x68, 0xf8, 0x39, 0x24, 0x02, 0x7e, 0x8e, 0x9a, 0xc0, 0x5f, 0xff, 0xaf, 0x8a, 0x2a, + 0x3b, 0x91, 0xab, 0x7e, 0xae, 0xa0, 0xd9, 0xec, 0x07, 0x98, 0xcb, 0x45, 0x55, 0x21, 0xff, 0xad, + 0x43, 0xbb, 0x31, 0x0e, 0x97, 0x54, 0xd6, 0xea, 0xa7, 0x7f, 0xfb, 0xcf, 0x2f, 0x27, 0x2e, 0xeb, + 0x7a, 0xa3, 0xe0, 0x73, 0x97, 0x68, 0x31, 0x6c, 0xf1, 0xfe, 0x27, 0x0a, 0x9a, 0x1e, 0x74, 0x94, + 0x97, 0x4a, 0xde, 0x91, 0x1c, 0xda, 0xca, 0x61, 0x1c, 0x12, 0xc5, 0x35, 0x86, 0x62, 0x49, 0x5f, + 0x2c, 0x42, 0x11, 0xb7, 0x5f, 0x16, 0x25, 0x16, 0xd0, 0xb6, 0xfa, 0x73, 0x05, 0xcd, 0x64, 0xbe, + 0x62, 0x2c, 0x97, 0xbc, 0x91, 0x66, 0xd2, 0xae, 0x8f, 0xc1, 0x24, 0xb1, 0xbc, 0xcd, 0xb0, 0x2c, + 0xeb, 0x4b, 0x45, 0x58, 0x42, 0x7e, 0xc2, 0x62, 0xa3, 0x1a, 0x43, 0x93, 0xf9, 0x7a, 0x51, 0x86, + 0x26, 0xcd, 0x54, 0x8a, 0xa6, 0xf0, 0x4b, 0xc1, 0x48, 0x34, 0xc2, 0x30, 0x29, 0x34, 0x99, 0x2f, + 0x0a, 0x65, 0x68, 0xd2, 0x4c, 0xa5, 0x68, 0x0a, 0x07, 0xe2, 0x91, 0x68, 0x1c, 0x7e, 0xc2, 0xb2, + 0xd9, 0xe3, 0xb1, 0xfb, 0x66, 0x07, 0xe7, 0x32, 0xf7, 0xcd, 0x70, 0x95, 0xba, 0x6f, 0xf1, 0xcc, + 0x39, 0xd2, 0x7d, 0xf7, 0xc5, 0x11, 0x81, 0xe8, 0xf7, 0x0a, 0x3a, 0x95, 0xee, 0xe7, 0x38, 0xaa, + 0xb7, 0x47, 0x86, 0x4b, 0xba, 0xf3, 0xd3, 0xd6, 0xc6, 0x66, 0x95, 0xf8, 0x6e, 0x31, 0x7c, 0xab, + 0xfa, 0xca, 0x88, 0xf0, 0xea, 0xf1, 0x83, 0x02, 0xe5, 0x1f, 0x14, 0xa4, 0x16, 0x8c, 0xd0, 0x65, + 0x30, 0x87, 0x59, 0x4b, 0x61, 0x8e, 0x98, 0x19, 0x47, 0xc2, 0x84, 0xd0, 0x5e, 0xbf, 0x65, 0x39, + 0xe2, 0xa0, 0x80, 0xf9, 0x67, 0x05, 0xd5, 0x4b, 0xbf, 0x7a, 0x37, 0x4a, 0x03, 0xbf, 0xf8, 0x80, + 0xf6, 0xee, 0x2b, 0x1e, 0x90, 0xc0, 0xbf, 0xce, 0x80, 0x1b, 0xfa, 0x8d, 0xe2, 0xc4, 0x41, 0xad, + 0x74, 0xcf, 0x9f, 0x64, 0x70, 0xf5, 0xd7, 0x0a, 0x9a, 0xcb, 0x0f, 0xc8, 0x57, 0xcb, 0xa2, 0x32, + 0xcb, 0xa7, 0x19, 0xe3, 0xf1, 0x49, 0x84, 0x06, 0x43, 0xb8, 0xa2, 0x5f, 0x2d, 0x0c, 0x60, 0x76, + 0xc8, 0x4a, 0x67, 0xb8, 0xbf, 0x28, 0x48, 0x1b, 0x31, 0x1e, 0x97, 0x19, 0xb7, 0xfc, 0x88, 0xf6, + 0xde, 0x2b, 0x1f, 0x91, 0xe0, 0xdf, 0x63, 0xe0, 0x6f, 0xeb, 0x6b, 0x85, 0xea, 0x65, 0xe7, 0xad, + 0x16, 0x76, 0x2c, 0x39, 0x49, 0x5b, 0x90, 0x00, 0xfd, 0x01, 0x9a, 0xc9, 0x8c, 0x46, 0x65, 0xc9, + 0x28, 0xcd, 0x54, 0x9a, 0x8c, 0x8a, 0xa6, 0x16, 0xf5, 0x33, 0x05, 0x69, 0x23, 0x46, 0x96, 0x32, + 0x4d, 0x95, 0x1f, 0x29, 0xd5, 0xd4, 0xe1, 0x93, 0x87, 0xfa, 0x53, 0x05, 0x9d, 0x2d, 0x1b, 0x3b, + 0x8c, 0xd2, 0xf2, 0x53, 0xc8, 0xaf, 0xbd, 0xf3, 0x6a, 0xfc, 0x12, 0x83, 0x87, 0xe6, 0xf2, 0x93, + 0x43, 0xa9, 0x57, 0x67, 0xf9, 0xca, 0xbd, 0xba, 0xb8, 0xa9, 0x8d, 0x9f, 0xca, 0x37, 0xb4, 0x57, + 0x47, 0xda, 0xee, 0xf0, 0xa7, 0x4a, 0xda, 0xb9, 0xf8, 0xa9, 0x7c, 0x2b, 0x77, 0xb5, 0x54, 0x41, + 0x19, 0x3e, 0xcd, 0x18, 0x8f, 0x2f, 0x79, 0x4a, 0x9b, 0xfc, 0xe4, 0xe5, 0xe3, 0x55, 0xa5, 0x09, + 0x5f, 0x3e, 0x5f, 0x50, 0x9e, 0x3e, 0x5f, 0x50, 0xfe, 0xf5, 0x7c, 0x41, 0xf9, 0xc5, 0x8b, 0x85, + 0x63, 0x4f, 0x5f, 0x2c, 0x1c, 0xfb, 0xfb, 0x8b, 0x85, 0x63, 0xdf, 0x7f, 0xdf, 0xf5, 0x68, 0xbb, + 0xd7, 0x32, 0x6c, 0xe2, 0x37, 0xb6, 0x93, 0xab, 0xef, 0xe1, 0x56, 0x34, 0x88, 0x8f, 0x9b, 0x36, + 0x09, 0x21, 0xbd, 0x6c, 0x63, 0x2f, 0x68, 0xf8, 0xc4, 0xe9, 0x75, 0x20, 0x12, 0xc1, 0xc3, 0xfe, + 0x0f, 0xd9, 0x9a, 0x62, 0x1f, 0xb4, 0x6e, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x47, 0x0f, 0xda, + 0x85, 0x93, 0x1d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/chain/peggy/types/rate_limit.pb.go b/chain/peggy/types/rate_limit.pb.go index d1d88626..9b0815c2 100644 --- a/chain/peggy/types/rate_limit.pb.go +++ b/chain/peggy/types/rate_limit.pb.go @@ -36,10 +36,10 @@ type RateLimit struct { RateLimitWindow uint64 `protobuf:"varint,4,opt,name=rate_limit_window,json=rateLimitWindow,proto3" json:"rate_limit_window,omitempty"` // the notional USD limit imposed on all outgoing traffic (per token) RateLimitUsd cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=rate_limit_usd,json=rateLimitUsd,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"rate_limit_usd"` - // the absolute amount of tokens that can be minted on Injective - AbsoluteMintLimit cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=absolute_mint_limit,json=absoluteMintLimit,proto3,customtype=cosmossdk.io/math.Int" json:"absolute_mint_limit"` + // [DEPRECATED] the absolute amount of tokens that can be minted on Injective + AbsoluteMintLimit cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=absolute_mint_limit,json=absoluteMintLimit,proto3,customtype=cosmossdk.io/math.Int" json:"absolute_mint_limit"` // Deprecated: Do not use. // transfers that occurred within the sliding window - Transfers []*BridgeTransfer `protobuf:"bytes,7,rep,name=transfers,proto3" json:"transfers,omitempty"` + Transfers []*BridgeTransfer `protobuf:"bytes,7,rep,name=transfers,proto3" json:"transfers,omitempty"` // Deprecated: Do not use. } func (m *RateLimit) Reset() { *m = RateLimit{} } @@ -103,6 +103,7 @@ func (m *RateLimit) GetRateLimitWindow() uint64 { return 0 } +// Deprecated: Do not use. func (m *RateLimit) GetTransfers() []*BridgeTransfer { if m != nil { return m.Transfers @@ -110,6 +111,7 @@ func (m *RateLimit) GetTransfers() []*BridgeTransfer { return nil } +// Deprecated: Do not use. type BridgeTransfer struct { // quantity that was bridged (chain format) Amount cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` @@ -166,9 +168,169 @@ func (m *BridgeTransfer) GetIsDeposit() bool { return false } +type RateLimitTransfers struct { + // contract address of the erc20 on Ethereum + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + // records of deposit transfers across blocks + Inflows []*BlockTransferRecord `protobuf:"bytes,2,rep,name=inflows,proto3" json:"inflows,omitempty"` + // records of withdrawal transfers across blocks + Outflows []*BlockTransferRecord `protobuf:"bytes,3,rep,name=outflows,proto3" json:"outflows,omitempty"` +} + +func (m *RateLimitTransfers) Reset() { *m = RateLimitTransfers{} } +func (m *RateLimitTransfers) String() string { return proto.CompactTextString(m) } +func (*RateLimitTransfers) ProtoMessage() {} +func (*RateLimitTransfers) Descriptor() ([]byte, []int) { + return fileDescriptor_f5e4b49160131e74, []int{2} +} +func (m *RateLimitTransfers) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RateLimitTransfers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RateLimitTransfers.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RateLimitTransfers) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimitTransfers.Merge(m, src) +} +func (m *RateLimitTransfers) XXX_Size() int { + return m.Size() +} +func (m *RateLimitTransfers) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimitTransfers.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimitTransfers proto.InternalMessageInfo + +func (m *RateLimitTransfers) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *RateLimitTransfers) GetInflows() []*BlockTransferRecord { + if m != nil { + return m.Inflows + } + return nil +} + +func (m *RateLimitTransfers) GetOutflows() []*BlockTransferRecord { + if m != nil { + return m.Outflows + } + return nil +} + +type BlockTransferRecord struct { + // block number at which the transfers occurred + BlockNumber uint64 `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + // sum amount of transfers that happened in that block + Amount cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` +} + +func (m *BlockTransferRecord) Reset() { *m = BlockTransferRecord{} } +func (m *BlockTransferRecord) String() string { return proto.CompactTextString(m) } +func (*BlockTransferRecord) ProtoMessage() {} +func (*BlockTransferRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_f5e4b49160131e74, []int{3} +} +func (m *BlockTransferRecord) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BlockTransferRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BlockTransferRecord.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BlockTransferRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockTransferRecord.Merge(m, src) +} +func (m *BlockTransferRecord) XXX_Size() int { + return m.Size() +} +func (m *BlockTransferRecord) XXX_DiscardUnknown() { + xxx_messageInfo_BlockTransferRecord.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockTransferRecord proto.InternalMessageInfo + +func (m *BlockTransferRecord) GetBlockNumber() uint64 { + if m != nil { + return m.BlockNumber + } + return 0 +} + +type MintAmount struct { + // address of the erc20 bridged in + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + // amount currently minted on chain + Amount cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` +} + +func (m *MintAmount) Reset() { *m = MintAmount{} } +func (m *MintAmount) String() string { return proto.CompactTextString(m) } +func (*MintAmount) ProtoMessage() {} +func (*MintAmount) Descriptor() ([]byte, []int) { + return fileDescriptor_f5e4b49160131e74, []int{4} +} +func (m *MintAmount) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MintAmount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MintAmount.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MintAmount) XXX_Merge(src proto.Message) { + xxx_messageInfo_MintAmount.Merge(m, src) +} +func (m *MintAmount) XXX_Size() int { + return m.Size() +} +func (m *MintAmount) XXX_DiscardUnknown() { + xxx_messageInfo_MintAmount.DiscardUnknown(m) +} + +var xxx_messageInfo_MintAmount proto.InternalMessageInfo + +func (m *MintAmount) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + func init() { proto.RegisterType((*RateLimit)(nil), "injective.peggy.v1.RateLimit") proto.RegisterType((*BridgeTransfer)(nil), "injective.peggy.v1.BridgeTransfer") + proto.RegisterType((*RateLimitTransfers)(nil), "injective.peggy.v1.RateLimitTransfers") + proto.RegisterType((*BlockTransferRecord)(nil), "injective.peggy.v1.BlockTransferRecord") + proto.RegisterType((*MintAmount)(nil), "injective.peggy.v1.MintAmount") } func init() { @@ -176,36 +338,43 @@ func init() { } var fileDescriptor_f5e4b49160131e74 = []byte{ - // 463 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x41, 0x8b, 0x13, 0x31, - 0x14, 0xc7, 0x3b, 0xb6, 0x56, 0x9b, 0xed, 0x56, 0x36, 0x2a, 0x0c, 0xca, 0xce, 0xd6, 0x56, 0xa1, - 0x08, 0xce, 0xb0, 0x8a, 0x77, 0x2d, 0xbd, 0x14, 0xbb, 0x22, 0x83, 0x22, 0x78, 0x19, 0x32, 0xc9, - 0x73, 0x1a, 0xdb, 0x24, 0x43, 0x92, 0xe9, 0xd2, 0x0f, 0xe0, 0xc1, 0x9b, 0x1f, 0x6b, 0x8f, 0x7b, - 0x14, 0x0f, 0x8b, 0xb4, 0x5f, 0x44, 0x9a, 0x99, 0x76, 0x2b, 0x7b, 0xf0, 0x36, 0xf3, 0xcb, 0xef, - 0xfd, 0x79, 0xc9, 0x7b, 0xa8, 0xcf, 0xe5, 0x37, 0xa0, 0x96, 0x2f, 0x20, 0xca, 0x21, 0xcb, 0x96, - 0xd1, 0xe2, 0x34, 0xd2, 0xc4, 0x42, 0x32, 0xe7, 0x82, 0xdb, 0x30, 0xd7, 0xca, 0x2a, 0x8c, 0x77, - 0x52, 0xe8, 0xa4, 0x70, 0x71, 0xfa, 0xe8, 0x41, 0xa6, 0x32, 0xe5, 0x8e, 0xa3, 0xcd, 0x57, 0x69, - 0xf6, 0xbe, 0xd7, 0x51, 0x2b, 0x26, 0x16, 0x26, 0x9b, 0x6a, 0xdc, 0x47, 0x87, 0x56, 0xcd, 0x40, - 0x26, 0x84, 0x31, 0x0d, 0xc6, 0xf8, 0x5e, 0xd7, 0x1b, 0xb4, 0xe2, 0xb6, 0x83, 0x6f, 0x4b, 0x86, - 0x9f, 0xa1, 0x4e, 0x29, 0x31, 0xa0, 0x5c, 0x90, 0xb9, 0xf1, 0x6f, 0x75, 0xbd, 0xc1, 0x61, 0x5c, - 0x96, 0x8e, 0x2a, 0x88, 0x9f, 0x6e, 0xb5, 0x5c, 0x73, 0x0a, 0x09, 0x67, 0x7e, 0x7d, 0x2f, 0xec, - 0xc3, 0x06, 0x8e, 0x19, 0x7e, 0x8e, 0x8e, 0xae, 0xbb, 0x4f, 0xce, 0xb9, 0x64, 0xea, 0xdc, 0x6f, - 0x74, 0xbd, 0x41, 0x23, 0xbe, 0xa7, 0xb7, 0x7d, 0x7d, 0x76, 0x18, 0x8f, 0x51, 0x67, 0xcf, 0x2d, - 0x0c, 0xf3, 0x6f, 0x6f, 0x12, 0x87, 0xfd, 0x8b, 0xab, 0x93, 0xda, 0xef, 0xab, 0x93, 0xc7, 0x54, - 0x19, 0xa1, 0x8c, 0x61, 0xb3, 0x90, 0xab, 0x48, 0x10, 0x3b, 0x0d, 0x27, 0x90, 0x11, 0xba, 0x1c, - 0x01, 0x8d, 0xdb, 0xbb, 0xb4, 0x4f, 0x86, 0xe1, 0x33, 0x74, 0x9f, 0xa4, 0x46, 0xcd, 0x0b, 0x0b, - 0x89, 0xe0, 0xd2, 0x96, 0x99, 0x7e, 0xd3, 0xe5, 0x1d, 0x57, 0x79, 0x0f, 0x6f, 0xe6, 0x8d, 0xa5, - 0x8d, 0x8f, 0xb6, 0x95, 0x67, 0x5c, 0xda, 0xf2, 0xdd, 0xde, 0xa0, 0x96, 0xd5, 0x44, 0x9a, 0xaf, - 0xa0, 0x8d, 0x7f, 0xa7, 0x5b, 0x1f, 0x1c, 0xbc, 0xec, 0x85, 0x37, 0x67, 0x10, 0x0e, 0x35, 0x67, - 0x19, 0x7c, 0xac, 0xd4, 0xf8, 0xba, 0xa8, 0xf7, 0xc3, 0x43, 0x9d, 0x7f, 0x4f, 0xf1, 0x6b, 0xd4, - 0x24, 0x42, 0x15, 0xd2, 0x96, 0x53, 0xf8, 0x5f, 0x5b, 0x95, 0x8c, 0x9f, 0xa0, 0x76, 0x3a, 0x57, - 0x74, 0x96, 0xc8, 0x42, 0xa4, 0xa0, 0xdd, 0x70, 0x1a, 0xf1, 0x81, 0x63, 0xef, 0x1d, 0xc2, 0xc7, - 0x08, 0x71, 0x93, 0x30, 0xc8, 0x95, 0xe1, 0xd6, 0x8d, 0xe5, 0x6e, 0xdc, 0xe2, 0x66, 0x54, 0x82, - 0x21, 0x5c, 0xac, 0x02, 0xef, 0x72, 0x15, 0x78, 0x7f, 0x56, 0x81, 0xf7, 0x73, 0x1d, 0xd4, 0x2e, - 0xd7, 0x41, 0xed, 0xd7, 0x3a, 0xa8, 0x7d, 0x79, 0x97, 0x71, 0x3b, 0x2d, 0xd2, 0x90, 0x2a, 0x11, - 0x8d, 0xb7, 0xd7, 0x9b, 0x90, 0xd4, 0x44, 0xbb, 0xcb, 0xbe, 0xa0, 0x4a, 0xc3, 0xfe, 0xef, 0x94, - 0x70, 0x19, 0x09, 0xc5, 0x8a, 0x39, 0x98, 0x6a, 0x65, 0xed, 0x32, 0x07, 0x93, 0x36, 0xdd, 0x06, - 0xbe, 0xfa, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x98, 0x80, 0xb9, 0xad, 0xd2, 0x02, 0x00, 0x00, + // 567 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xdf, 0x8a, 0xd3, 0x4c, + 0x1c, 0xed, 0xb4, 0xbb, 0xdd, 0xed, 0x6c, 0xb7, 0x1f, 0x3b, 0xbb, 0x1f, 0x04, 0x65, 0xd3, 0x9a, + 0x2a, 0x16, 0xc1, 0x84, 0x55, 0xbc, 0xf1, 0xae, 0xb5, 0x37, 0xc5, 0xfa, 0x87, 0x41, 0x11, 0xbd, + 0x09, 0x49, 0x66, 0x36, 0x1d, 0x9b, 0x64, 0x4a, 0x66, 0xd2, 0xd2, 0x67, 0x10, 0xc1, 0x67, 0xf1, + 0x29, 0xf6, 0x72, 0x2f, 0xc5, 0x8b, 0x45, 0xda, 0x17, 0x91, 0x4c, 0x92, 0xb6, 0xd2, 0x22, 0xac, + 0x77, 0x99, 0x93, 0x73, 0xce, 0x1c, 0xce, 0xef, 0xc7, 0xc0, 0x36, 0x8b, 0x3e, 0x53, 0x4f, 0xb2, + 0x29, 0xb5, 0x26, 0xd4, 0xf7, 0xe7, 0xd6, 0xf4, 0xc2, 0x8a, 0x1d, 0x49, 0xed, 0x80, 0x85, 0x4c, + 0x9a, 0x93, 0x98, 0x4b, 0x8e, 0xd0, 0x8a, 0x64, 0x2a, 0x92, 0x39, 0xbd, 0xb8, 0x73, 0xe6, 0x73, + 0x9f, 0xab, 0xdf, 0x56, 0xfa, 0x95, 0x31, 0x8d, 0x2f, 0x15, 0x58, 0xc3, 0x8e, 0xa4, 0xc3, 0x54, + 0x8d, 0xda, 0xf0, 0x58, 0xf2, 0x31, 0x8d, 0x6c, 0x87, 0x90, 0x98, 0x0a, 0xa1, 0x81, 0x16, 0xe8, + 0xd4, 0x70, 0x5d, 0x81, 0xdd, 0x0c, 0x43, 0x0f, 0x60, 0x23, 0x23, 0x11, 0xea, 0xb1, 0xd0, 0x09, + 0x84, 0x56, 0x6e, 0x81, 0xce, 0x31, 0xce, 0xa4, 0xfd, 0x1c, 0x44, 0xf7, 0x0b, 0xda, 0x24, 0x66, + 0x1e, 0xb5, 0x19, 0xd1, 0x2a, 0x1b, 0x66, 0x6f, 0x53, 0x70, 0x40, 0xd0, 0x23, 0x78, 0xb2, 0x4e, + 0x6f, 0xcf, 0x58, 0x44, 0xf8, 0x4c, 0xdb, 0x6b, 0x81, 0xce, 0x1e, 0xfe, 0x2f, 0x2e, 0x72, 0x7d, + 0x50, 0x30, 0x1a, 0xc0, 0xc6, 0x06, 0x37, 0x11, 0x44, 0xdb, 0x4f, 0x1d, 0x7b, 0xed, 0xab, 0x9b, + 0x66, 0xe9, 0xe7, 0x4d, 0xf3, 0xae, 0xc7, 0x45, 0xc8, 0x85, 0x20, 0x63, 0x93, 0x71, 0x2b, 0x74, + 0xe4, 0xc8, 0x1c, 0x52, 0xdf, 0xf1, 0xe6, 0x7d, 0xea, 0xe1, 0xfa, 0xca, 0xed, 0xbd, 0x20, 0xe8, + 0x0d, 0x3c, 0x75, 0x5c, 0xc1, 0x83, 0x44, 0x52, 0x3b, 0x64, 0x91, 0xcc, 0x3c, 0xb5, 0xaa, 0xf2, + 0x6b, 0xe6, 0x7e, 0xff, 0x6f, 0xfb, 0x0d, 0x22, 0xa9, 0x01, 0x7c, 0x52, 0x68, 0x5f, 0xb1, 0x48, + 0x66, 0xcd, 0xf5, 0x61, 0x4d, 0xc6, 0x4e, 0x24, 0x2e, 0x69, 0x2c, 0xb4, 0x83, 0x56, 0xa5, 0x73, + 0xf4, 0xc4, 0x30, 0xb7, 0xa7, 0x60, 0xf6, 0x62, 0x46, 0x7c, 0xfa, 0x2e, 0xa7, 0xf6, 0xca, 0x1a, + 0xc0, 0x6b, 0xa1, 0xf1, 0x15, 0xc0, 0xc6, 0x9f, 0x0c, 0xf4, 0x0c, 0x56, 0x9d, 0x90, 0x27, 0xe9, + 0xbd, 0x2a, 0xdc, 0xf9, 0x5f, 0xc3, 0xe1, 0x9c, 0x8c, 0xee, 0xc1, 0xba, 0x1b, 0x70, 0x6f, 0x6c, + 0x47, 0x49, 0xe8, 0xd2, 0x58, 0x8d, 0x68, 0x0f, 0x1f, 0x29, 0xec, 0xb5, 0x82, 0xd0, 0x39, 0x84, + 0x4c, 0xd8, 0x84, 0x4e, 0xb8, 0x60, 0x52, 0x0d, 0xe7, 0x10, 0xd7, 0x98, 0xe8, 0x67, 0xc0, 0xf3, + 0xb2, 0x06, 0x8c, 0xef, 0x00, 0xa2, 0xd5, 0x76, 0x14, 0x91, 0x04, 0x3a, 0x83, 0xfb, 0x6a, 0x88, + 0xf9, 0x7a, 0x64, 0x07, 0xd4, 0x85, 0x07, 0x2c, 0xba, 0x0c, 0xf8, 0x2c, 0x5d, 0x88, 0xb4, 0x80, + 0x87, 0x3b, 0x0b, 0x48, 0x13, 0x14, 0x56, 0x98, 0x7a, 0x3c, 0x26, 0xb8, 0xd0, 0xa1, 0x17, 0xf0, + 0x90, 0x27, 0x32, 0xf3, 0xa8, 0xdc, 0xce, 0x63, 0x25, 0x34, 0x38, 0x3c, 0xdd, 0x41, 0xd8, 0x6a, + 0x04, 0x6c, 0x37, 0xb2, 0xee, 0xba, 0x7c, 0x8b, 0xae, 0x8d, 0x8f, 0x10, 0xa6, 0x8b, 0xd0, 0xcd, + 0x9a, 0xdf, 0x5d, 0xce, 0xbf, 0x59, 0xf7, 0xe8, 0xd5, 0x42, 0x07, 0xd7, 0x0b, 0x1d, 0xfc, 0x5a, + 0xe8, 0xe0, 0xdb, 0x52, 0x2f, 0x5d, 0x2f, 0xf5, 0xd2, 0x8f, 0xa5, 0x5e, 0xfa, 0xf4, 0xd2, 0x67, + 0x72, 0x94, 0xb8, 0xa6, 0xc7, 0x43, 0x6b, 0x50, 0x54, 0x34, 0x74, 0x5c, 0x61, 0xad, 0x0a, 0x7b, + 0xec, 0xf1, 0x98, 0x6e, 0x1e, 0x47, 0x0e, 0x8b, 0xac, 0x90, 0x93, 0x24, 0xa0, 0x22, 0x7f, 0x3d, + 0xe4, 0x7c, 0x42, 0x85, 0x5b, 0x55, 0x8f, 0xc1, 0xd3, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x27, + 0xa5, 0xb0, 0x31, 0x5d, 0x04, 0x00, 0x00, } func (m *RateLimit) Marshal() (dAtA []byte, err error) { @@ -337,6 +506,142 @@ func (m *BridgeTransfer) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *RateLimitTransfers) 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 *RateLimitTransfers) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RateLimitTransfers) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Outflows) > 0 { + for iNdEx := len(m.Outflows) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Outflows[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Inflows) > 0 { + for iNdEx := len(m.Inflows) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Inflows[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Token) > 0 { + i -= len(m.Token) + copy(dAtA[i:], m.Token) + i = encodeVarintRateLimit(dAtA, i, uint64(len(m.Token))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BlockTransferRecord) 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 *BlockTransferRecord) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BlockTransferRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.BlockNumber != 0 { + i = encodeVarintRateLimit(dAtA, i, uint64(m.BlockNumber)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MintAmount) 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 *MintAmount) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MintAmount) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Token) > 0 { + i -= len(m.Token) + copy(dAtA[i:], m.Token) + i = encodeVarintRateLimit(dAtA, i, uint64(len(m.Token))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintRateLimit(dAtA []byte, offset int, v uint64) int { offset -= sovRateLimit(v) base := offset @@ -398,6 +703,60 @@ func (m *BridgeTransfer) Size() (n int) { return n } +func (m *RateLimitTransfers) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Token) + if l > 0 { + n += 1 + l + sovRateLimit(uint64(l)) + } + if len(m.Inflows) > 0 { + for _, e := range m.Inflows { + l = e.Size() + n += 1 + l + sovRateLimit(uint64(l)) + } + } + if len(m.Outflows) > 0 { + for _, e := range m.Outflows { + l = e.Size() + n += 1 + l + sovRateLimit(uint64(l)) + } + } + return n +} + +func (m *BlockTransferRecord) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BlockNumber != 0 { + n += 1 + sovRateLimit(uint64(m.BlockNumber)) + } + l = m.Amount.Size() + n += 1 + l + sovRateLimit(uint64(l)) + return n +} + +func (m *MintAmount) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Token) + if l > 0 { + n += 1 + l + sovRateLimit(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovRateLimit(uint64(l)) + return n +} + func sovRateLimit(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -781,6 +1140,375 @@ func (m *BridgeTransfer) Unmarshal(dAtA []byte) error { } return nil } +func (m *RateLimitTransfers) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RateLimitTransfers: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RateLimitTransfers: 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 stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + 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 ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Token = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Inflows", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Inflows = append(m.Inflows, &BlockTransferRecord{}) + if err := m.Inflows[len(m.Inflows)-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 Outflows", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Outflows = append(m.Outflows, &BlockTransferRecord{}) + if err := m.Outflows[len(m.Outflows)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRateLimit(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRateLimit + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BlockTransferRecord) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BlockTransferRecord: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BlockTransferRecord: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockNumber", wireType) + } + m.BlockNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlockNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + 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 ErrIntOverflowRateLimit + } + 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 ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRateLimit(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRateLimit + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MintAmount) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MintAmount: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MintAmount: 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 stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + 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 ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Token = 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 ErrIntOverflowRateLimit + } + 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 ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRateLimit(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRateLimit + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipRateLimit(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/permissions/types/events.pb.go b/chain/permissions/types/events.pb.go index d5c783c5..f6250b28 100644 --- a/chain/permissions/types/events.pb.go +++ b/chain/permissions/types/events.pb.go @@ -26,7 +26,9 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type EventSetVoucher struct { - Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + // The bech32 address of the voucher holder. + Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + // The new voucher amount. A zero coin signals voucher deletion. Voucher types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3" json:"voucher"` } diff --git a/chain/permissions/types/genesis.pb.go b/chain/permissions/types/genesis.pb.go index 74034f9a..8f90e479 100644 --- a/chain/permissions/types/genesis.pb.go +++ b/chain/permissions/types/genesis.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -30,7 +31,7 @@ type GenesisState struct { // namespaces defines the namespaces of the module Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` // vouchers defines the vouchers of the module - Vouchers []*AddressVoucher `protobuf:"bytes,3,rep,name=vouchers,proto3" json:"vouchers,omitempty"` + Vouchers []types.AddressVoucher `protobuf:"bytes,3,rep,name=vouchers,proto3" json:"vouchers"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -80,7 +81,7 @@ func (m *GenesisState) GetNamespaces() []Namespace { return nil } -func (m *GenesisState) GetVouchers() []*AddressVoucher { +func (m *GenesisState) GetVouchers() []types.AddressVoucher { if m != nil { return m.Vouchers } @@ -96,26 +97,28 @@ func init() { } var fileDescriptor_5ff1982ce1793022 = []byte{ - // 299 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0x41, 0x4b, 0xc3, 0x30, - 0x14, 0x80, 0x1b, 0x27, 0x43, 0x32, 0x4f, 0xc5, 0xc3, 0x18, 0x18, 0x87, 0x20, 0x0c, 0x65, 0x09, - 0x9b, 0xbf, 0xc0, 0x79, 0x90, 0x81, 0x0c, 0x9d, 0xe0, 0xc1, 0x5b, 0xda, 0x3d, 0xba, 0xa8, 0x6d, - 0x4a, 0x5e, 0x5a, 0xf0, 0x5f, 0xf8, 0xb3, 0x76, 0xdc, 0xd1, 0x93, 0x48, 0x7b, 0xf7, 0x37, 0x88, - 0x6d, 0x37, 0xeb, 0x65, 0xbd, 0x25, 0xf0, 0x7d, 0xdf, 0x7b, 0x3c, 0x7a, 0xa1, 0xa2, 0x67, 0xf0, - 0xad, 0x4a, 0x41, 0xc4, 0x60, 0x42, 0x85, 0xa8, 0x74, 0x84, 0x22, 0x1d, 0x79, 0x60, 0xe5, 0x48, - 0x04, 0x10, 0x01, 0x2a, 0xe4, 0xb1, 0xd1, 0x56, 0xbb, 0xc7, 0x5b, 0x98, 0xd7, 0x60, 0x5e, 0xc1, - 0xbd, 0xa3, 0x40, 0x07, 0xba, 0x20, 0xc5, 0xef, 0xab, 0x94, 0x7a, 0xe7, 0xbb, 0x27, 0xc4, 0xd2, - 0xc8, 0xb0, 0x1a, 0xd0, 0x13, 0x0d, 0x6c, 0x6d, 0x68, 0x21, 0x9c, 0x7e, 0x13, 0x7a, 0x78, 0x53, - 0xee, 0xf8, 0x60, 0xa5, 0x05, 0xf7, 0x9a, 0xb6, 0xcb, 0x62, 0x97, 0xf4, 0xc9, 0xa0, 0x33, 0x3e, - 0xe3, 0x3b, 0x77, 0xe6, 0x77, 0x05, 0x3c, 0xd9, 0x5f, 0x7d, 0x9e, 0x38, 0xf3, 0x4a, 0x75, 0x67, - 0x94, 0x46, 0x32, 0x04, 0x8c, 0xa5, 0x0f, 0xd8, 0xdd, 0xeb, 0xb7, 0x06, 0x9d, 0xf1, 0xa0, 0x21, - 0x34, 0xdb, 0x08, 0x55, 0xab, 0x56, 0x70, 0xa7, 0xf4, 0x20, 0xd5, 0x89, 0xbf, 0x04, 0x83, 0xdd, - 0x56, 0x51, 0x1b, 0x36, 0xd4, 0xae, 0x16, 0x0b, 0x03, 0x88, 0x8f, 0xa5, 0x35, 0xdf, 0xea, 0x93, - 0x97, 0x55, 0xc6, 0xc8, 0x3a, 0x63, 0xe4, 0x2b, 0x63, 0xe4, 0x3d, 0x67, 0xce, 0x3a, 0x67, 0xce, - 0x47, 0xce, 0x9c, 0xa7, 0xfb, 0x40, 0xd9, 0x65, 0xe2, 0x71, 0x5f, 0x87, 0x62, 0xba, 0x89, 0xdf, - 0x4a, 0x0f, 0xff, 0x8e, 0x3a, 0xf4, 0xb5, 0x81, 0xfa, 0x77, 0x29, 0x55, 0x24, 0x42, 0xbd, 0x48, - 0x5e, 0x01, 0xff, 0x5d, 0xdc, 0xbe, 0xc5, 0x80, 0x5e, 0xbb, 0x38, 0xf2, 0xe5, 0x4f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x83, 0x97, 0x25, 0xeb, 0x25, 0x02, 0x00, 0x00, + // 322 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0xcd, 0x4a, 0xf3, 0x40, + 0x14, 0x86, 0x93, 0xaf, 0x1f, 0x45, 0x52, 0x57, 0xc1, 0x45, 0x29, 0x38, 0x16, 0x41, 0x28, 0xfe, + 0xcc, 0xd0, 0x7a, 0x05, 0xd6, 0x85, 0x08, 0x52, 0xfc, 0x01, 0x17, 0xee, 0x26, 0xe9, 0x21, 0x1d, + 0x75, 0x66, 0xc2, 0x9c, 0x69, 0xc0, 0xbb, 0xf0, 0xb2, 0xba, 0xec, 0xd2, 0x95, 0x48, 0x7b, 0x09, + 0xde, 0x80, 0xe4, 0xd7, 0x71, 0xd3, 0xee, 0x26, 0xe1, 0x79, 0x9f, 0x73, 0xce, 0x1b, 0x9c, 0x08, + 0xf5, 0x0c, 0xb1, 0x15, 0x19, 0xb0, 0x14, 0x8c, 0x14, 0x88, 0x42, 0x2b, 0x64, 0xd9, 0x30, 0x02, + 0xcb, 0x87, 0x2c, 0x01, 0x05, 0x28, 0x90, 0xa6, 0x46, 0x5b, 0x1d, 0xee, 0x37, 0x30, 0x75, 0x60, + 0x5a, 0xc1, 0xbd, 0xbd, 0x44, 0x27, 0xba, 0x20, 0x59, 0xfe, 0x2a, 0x43, 0x3d, 0x67, 0x42, 0xac, + 0xa5, 0xd4, 0x8a, 0x65, 0x7a, 0x1e, 0xcf, 0xc0, 0xe4, 0x53, 0x9a, 0x77, 0x05, 0x1f, 0x6f, 0x5e, + 0x27, 0xe5, 0x86, 0xcb, 0x9a, 0x65, 0x5b, 0x58, 0x67, 0xc3, 0x22, 0x70, 0xf8, 0xed, 0x07, 0xbb, + 0x57, 0xe5, 0x41, 0x0f, 0x96, 0x5b, 0x08, 0x2f, 0x83, 0x76, 0x69, 0xec, 0xfa, 0x7d, 0x7f, 0xd0, + 0x19, 0x1d, 0xd1, 0x8d, 0x07, 0xd2, 0xdb, 0x02, 0x1e, 0xff, 0x5f, 0x7c, 0x1e, 0x78, 0xf7, 0x55, + 0x34, 0x9c, 0x04, 0x81, 0xe2, 0x12, 0x30, 0xe5, 0x31, 0x60, 0xf7, 0x5f, 0xbf, 0x35, 0xe8, 0x8c, + 0x06, 0x5b, 0x44, 0x93, 0x3a, 0x50, 0xb9, 0x1c, 0x43, 0x38, 0x09, 0x76, 0xea, 0x52, 0xba, 0xad, + 0xc2, 0x76, 0xea, 0xd8, 0xca, 0x0a, 0x69, 0x53, 0x5b, 0x36, 0xa4, 0x17, 0xd3, 0xa9, 0x01, 0xc4, + 0xc7, 0xf2, 0x57, 0x65, 0x6c, 0x1c, 0xe3, 0x97, 0xc5, 0x8a, 0xf8, 0xcb, 0x15, 0xf1, 0xbf, 0x56, + 0xc4, 0x7f, 0x5f, 0x13, 0x6f, 0xb9, 0x26, 0xde, 0xc7, 0x9a, 0x78, 0x4f, 0x77, 0x89, 0xb0, 0xb3, + 0x79, 0x94, 0x3b, 0xd9, 0x75, 0x3d, 0xe1, 0x86, 0x47, 0xf8, 0xdb, 0xec, 0x59, 0xac, 0x0d, 0xb8, + 0x9f, 0x33, 0x2e, 0x14, 0x93, 0x7a, 0x3a, 0x7f, 0x05, 0xfc, 0x53, 0xbb, 0x7d, 0x4b, 0x01, 0xa3, + 0x76, 0xd1, 0xf4, 0xf9, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfa, 0xa8, 0x94, 0x00, 0x57, 0x02, + 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -344,7 +347,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Vouchers = append(m.Vouchers, &AddressVoucher{}) + m.Vouchers = append(m.Vouchers, types.AddressVoucher{}) if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/chain/permissions/types/params.pb.go b/chain/permissions/types/params.pb.go index cfe26779..68dbbb87 100644 --- a/chain/permissions/types/params.pb.go +++ b/chain/permissions/types/params.pb.go @@ -26,19 +26,109 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +// EnforcedRestrictionsContract defines an EVM contract with its pause, +// blacklist and unblacklist event signatures +type EnforcedRestrictionsEVMContract struct { + // EVM address of the contract + ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // Pause event signature for the contract (e.g. "Pause()") + PauseEventSignature string `protobuf:"bytes,2,opt,name=pause_event_signature,json=pauseEventSignature,proto3" json:"pause_event_signature,omitempty"` + // Unpause event signature for the contract (e.g. "Unpause()") + UnpauseEventSignature string `protobuf:"bytes,3,opt,name=unpause_event_signature,json=unpauseEventSignature,proto3" json:"unpause_event_signature,omitempty"` + // Blacklist event signature for the contract (e.g. Blacklisted(address)") + BlacklistEventSignature string `protobuf:"bytes,4,opt,name=blacklist_event_signature,json=blacklistEventSignature,proto3" json:"blacklist_event_signature,omitempty"` + // UnBlacklist event signature for the contract (e.g. + // "UnBlacklisted(address)") + UnblacklistEventSignature string `protobuf:"bytes,5,opt,name=unblacklist_event_signature,json=unblacklistEventSignature,proto3" json:"unblacklist_event_signature,omitempty"` +} + +func (m *EnforcedRestrictionsEVMContract) Reset() { *m = EnforcedRestrictionsEVMContract{} } +func (m *EnforcedRestrictionsEVMContract) String() string { return proto.CompactTextString(m) } +func (*EnforcedRestrictionsEVMContract) ProtoMessage() {} +func (*EnforcedRestrictionsEVMContract) Descriptor() ([]byte, []int) { + return fileDescriptor_4a7ea0496163621f, []int{0} +} +func (m *EnforcedRestrictionsEVMContract) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EnforcedRestrictionsEVMContract) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EnforcedRestrictionsEVMContract.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EnforcedRestrictionsEVMContract) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnforcedRestrictionsEVMContract.Merge(m, src) +} +func (m *EnforcedRestrictionsEVMContract) XXX_Size() int { + return m.Size() +} +func (m *EnforcedRestrictionsEVMContract) XXX_DiscardUnknown() { + xxx_messageInfo_EnforcedRestrictionsEVMContract.DiscardUnknown(m) +} + +var xxx_messageInfo_EnforcedRestrictionsEVMContract proto.InternalMessageInfo + +func (m *EnforcedRestrictionsEVMContract) GetContractAddress() string { + if m != nil { + return m.ContractAddress + } + return "" +} + +func (m *EnforcedRestrictionsEVMContract) GetPauseEventSignature() string { + if m != nil { + return m.PauseEventSignature + } + return "" +} + +func (m *EnforcedRestrictionsEVMContract) GetUnpauseEventSignature() string { + if m != nil { + return m.UnpauseEventSignature + } + return "" +} + +func (m *EnforcedRestrictionsEVMContract) GetBlacklistEventSignature() string { + if m != nil { + return m.BlacklistEventSignature + } + return "" +} + +func (m *EnforcedRestrictionsEVMContract) GetUnblacklistEventSignature() string { + if m != nil { + return m.UnblacklistEventSignature + } + return "" +} + // Params defines the parameters for the permissions module. type Params struct { // Max amount of gas allowed for contract hook queries ContractHookMaxGas uint64 `protobuf:"varint,1,opt,name=contract_hook_max_gas,json=contractHookMaxGas,proto3" json:"contract_hook_max_gas,omitempty"` + // DEPRECATED in favor of enforced_restrictions_evm_contracts, but left + // for compatibility and upgrade purposes + // // EVM addresses of contracts that will not bypass module-to-module transfers - EnforcedRestrictionsContracts []string `protobuf:"bytes,2,rep,name=enforced_restrictions_contracts,json=enforcedRestrictionsContracts,proto3" json:"enforced_restrictions_contracts,omitempty"` + DeprecatedEnforcedRestrictionsContracts []string `protobuf:"bytes,2,rep,name=deprecated_enforced_restrictions_contracts,json=deprecatedEnforcedRestrictionsContracts,proto3" json:"deprecated_enforced_restrictions_contracts,omitempty"` + // EVM Contracts that module will be listening to sync permissions stored + // inside namespace on every update inside smart contract state + EnforcedRestrictionsEvmContracts []EnforcedRestrictionsEVMContract `protobuf:"bytes,3,rep,name=enforced_restrictions_evm_contracts,json=enforcedRestrictionsEvmContracts,proto3" json:"enforced_restrictions_evm_contracts"` } func (m *Params) Reset() { *m = Params{} } func (m *Params) String() string { return proto.CompactTextString(m) } func (*Params) ProtoMessage() {} func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_4a7ea0496163621f, []int{0} + return fileDescriptor_4a7ea0496163621f, []int{1} } func (m *Params) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -74,14 +164,22 @@ func (m *Params) GetContractHookMaxGas() uint64 { return 0 } -func (m *Params) GetEnforcedRestrictionsContracts() []string { +func (m *Params) GetDeprecatedEnforcedRestrictionsContracts() []string { if m != nil { - return m.EnforcedRestrictionsContracts + return m.DeprecatedEnforcedRestrictionsContracts + } + return nil +} + +func (m *Params) GetEnforcedRestrictionsEvmContracts() []EnforcedRestrictionsEVMContract { + if m != nil { + return m.EnforcedRestrictionsEvmContracts } return nil } func init() { + proto.RegisterType((*EnforcedRestrictionsEVMContract)(nil), "injective.permissions.v1beta1.EnforcedRestrictionsEVMContract") proto.RegisterType((*Params)(nil), "injective.permissions.v1beta1.Params") } @@ -90,29 +188,78 @@ func init() { } var fileDescriptor_4a7ea0496163621f = []byte{ - // 318 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0x4f, 0x4a, 0x03, 0x31, - 0x18, 0xc5, 0x1b, 0x95, 0x82, 0xb3, 0x73, 0x50, 0xa8, 0x95, 0xa6, 0xc5, 0x55, 0x29, 0x38, 0xa1, - 0xb8, 0x73, 0xa9, 0xe0, 0x1f, 0x50, 0xd0, 0x2e, 0xdd, 0x0c, 0x99, 0x34, 0x4e, 0x63, 0x4d, 0xbe, - 0x21, 0x5f, 0x5a, 0xea, 0x15, 0x5c, 0x79, 0x84, 0x1e, 0xc1, 0x63, 0xb8, 0xec, 0xd2, 0xa5, 0xb4, - 0x0b, 0x3d, 0x86, 0x74, 0xd2, 0x19, 0xc6, 0x4d, 0xc8, 0xcb, 0xfb, 0x85, 0xbc, 0xbc, 0x2f, 0xe8, - 0x29, 0xf3, 0x2c, 0x85, 0x53, 0x53, 0xc9, 0x32, 0x69, 0xb5, 0x42, 0x54, 0x60, 0x90, 0x4d, 0xfb, - 0x89, 0x74, 0xbc, 0xcf, 0x32, 0x6e, 0xb9, 0xc6, 0x28, 0xb3, 0xe0, 0x20, 0x6c, 0x95, 0x6c, 0x54, - 0x61, 0xa3, 0x0d, 0xdb, 0xdc, 0x4f, 0x21, 0x85, 0x9c, 0x64, 0xeb, 0x9d, 0xbf, 0xd4, 0x3c, 0x14, - 0x80, 0x1a, 0x30, 0xf6, 0x86, 0x17, 0x1b, 0x8b, 0x7a, 0xc5, 0x12, 0x8e, 0xb2, 0x7c, 0x51, 0x80, - 0x32, 0x1b, 0x7f, 0x8f, 0x6b, 0x65, 0x80, 0xe5, 0xab, 0x3f, 0x3a, 0x9e, 0x93, 0xa0, 0x7e, 0x9f, - 0x67, 0x0a, 0xfb, 0xc1, 0x81, 0x00, 0xe3, 0x2c, 0x17, 0x2e, 0x1e, 0x01, 0x8c, 0x63, 0xcd, 0x67, - 0x71, 0xca, 0xb1, 0x41, 0x3a, 0xa4, 0xbb, 0x33, 0x08, 0x0b, 0xf3, 0x1a, 0x60, 0x7c, 0xc7, 0x67, - 0x57, 0x1c, 0xc3, 0xcb, 0xa0, 0x2d, 0xcd, 0x13, 0x58, 0x21, 0x87, 0xb1, 0x95, 0xe8, 0xac, 0x12, - 0x6e, 0xfd, 0x85, 0xb8, 0x60, 0xb1, 0xb1, 0xd5, 0xd9, 0xee, 0xee, 0x0e, 0x5a, 0x05, 0x36, 0xa8, - 0x50, 0x17, 0x05, 0x74, 0x76, 0xf4, 0x3b, 0x6f, 0x93, 0xb7, 0x9f, 0x8f, 0x5e, 0x58, 0xed, 0xcc, - 0xe7, 0x3a, 0x1f, 0x7f, 0x2e, 0x29, 0x59, 0x2c, 0x29, 0xf9, 0x5e, 0x52, 0xf2, 0xbe, 0xa2, 0xb5, - 0xc5, 0x8a, 0xd6, 0xbe, 0x56, 0xb4, 0xf6, 0xf8, 0x90, 0x2a, 0x37, 0x9a, 0x24, 0x91, 0x00, 0xcd, - 0x6e, 0x8a, 0x2a, 0x6f, 0x79, 0x82, 0xac, 0x2c, 0xf6, 0x44, 0x80, 0x95, 0x55, 0x39, 0xe2, 0xca, - 0x30, 0x0d, 0xc3, 0xc9, 0x8b, 0xc4, 0x7f, 0x13, 0x72, 0xaf, 0x99, 0xc4, 0xa4, 0x9e, 0xd7, 0x72, - 0xfa, 0x17, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x58, 0x53, 0x63, 0xc7, 0x01, 0x00, 0x00, + // 516 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xcf, 0x8a, 0x13, 0x41, + 0x10, 0xc6, 0x33, 0x49, 0x5c, 0xd8, 0xf6, 0xa0, 0x8e, 0x1b, 0x36, 0xd9, 0xc5, 0x49, 0x58, 0x0f, + 0x86, 0xc0, 0xce, 0x90, 0x15, 0x3c, 0xe4, 0xb0, 0x60, 0x96, 0xa0, 0x82, 0x0b, 0x3a, 0x0b, 0x1e, + 0xf4, 0x30, 0xf4, 0xf4, 0x94, 0x93, 0x36, 0xe9, 0xee, 0xa1, 0xbb, 0x27, 0xac, 0xaf, 0xe0, 0x49, + 0xf0, 0x05, 0x7c, 0x04, 0x0f, 0x3e, 0xc4, 0x82, 0x97, 0x45, 0x3c, 0x78, 0x12, 0x49, 0x0e, 0xfa, + 0x18, 0x32, 0x7f, 0x9d, 0x5d, 0xa3, 0x5e, 0x86, 0xae, 0xfe, 0xbe, 0x5f, 0x4d, 0x51, 0xd5, 0x85, + 0x06, 0x94, 0xbf, 0x02, 0xa2, 0xe9, 0x02, 0x9c, 0x08, 0x24, 0xa3, 0x4a, 0x51, 0xc1, 0x95, 0xb3, + 0x18, 0xfa, 0xa0, 0xf1, 0xd0, 0x89, 0xb0, 0xc4, 0x4c, 0xd9, 0x91, 0x14, 0x5a, 0x98, 0xb7, 0x4a, + 0xaf, 0x5d, 0xf1, 0xda, 0xb9, 0x77, 0x67, 0x2b, 0x14, 0xa1, 0x48, 0x9d, 0x4e, 0x72, 0xca, 0xa0, + 0x9d, 0x0e, 0x11, 0x8a, 0x09, 0xe5, 0x65, 0x42, 0x16, 0xe4, 0x92, 0x95, 0x45, 0x8e, 0x8f, 0x15, + 0x94, 0x7f, 0x24, 0x82, 0xf2, 0x5c, 0xbf, 0x81, 0x19, 0xe5, 0xc2, 0x49, 0xbf, 0xd9, 0xd5, 0xde, + 0x97, 0x3a, 0xea, 0x4e, 0xf8, 0x4b, 0x21, 0x09, 0x04, 0x2e, 0x28, 0x2d, 0x29, 0xd1, 0x49, 0x11, + 0x93, 0x67, 0xc7, 0x47, 0x82, 0x6b, 0x89, 0x89, 0x36, 0x8f, 0xd0, 0x75, 0x92, 0x9f, 0x3d, 0x1c, + 0x04, 0x12, 0x94, 0x6a, 0x1b, 0x3d, 0xa3, 0xbf, 0x39, 0x6e, 0x7f, 0xfe, 0xb8, 0xbf, 0x95, 0x97, + 0x70, 0x3f, 0x53, 0x4e, 0xb4, 0xa4, 0x3c, 0x74, 0xaf, 0x15, 0x44, 0x7e, 0x6d, 0x1e, 0xa0, 0x56, + 0x84, 0x63, 0x05, 0x1e, 0x2c, 0x80, 0x6b, 0x4f, 0xd1, 0x90, 0x63, 0x1d, 0x4b, 0x68, 0xd7, 0x93, + 0x4c, 0xee, 0xcd, 0x54, 0x9c, 0x24, 0xda, 0x49, 0x21, 0x99, 0xf7, 0xd0, 0x76, 0xcc, 0xd7, 0x53, + 0x8d, 0x94, 0x6a, 0xe5, 0xf2, 0x25, 0x6e, 0x84, 0x3a, 0xfe, 0x1c, 0x93, 0xd9, 0x9c, 0x2a, 0xfd, + 0x07, 0xd9, 0x4c, 0xc9, 0xed, 0xd2, 0x70, 0x89, 0x3d, 0x44, 0xbb, 0x31, 0xff, 0x3b, 0x7d, 0x25, + 0xa5, 0x3b, 0x15, 0xcb, 0x45, 0x7e, 0xd4, 0xfc, 0xf9, 0xbe, 0x6b, 0xec, 0x7d, 0xaa, 0xa3, 0x8d, + 0x27, 0xe9, 0xa8, 0xcd, 0x21, 0x6a, 0x95, 0xdd, 0x9b, 0x0a, 0x31, 0xf3, 0x18, 0x3e, 0xf5, 0x42, + 0x9c, 0xb5, 0xb0, 0xe9, 0x9a, 0x85, 0xf8, 0x50, 0x88, 0xd9, 0x31, 0x3e, 0x7d, 0x80, 0x95, 0xf9, + 0x02, 0x0d, 0x02, 0x88, 0x24, 0x10, 0xac, 0x21, 0xf0, 0x20, 0x1f, 0x8f, 0x27, 0x2b, 0xf3, 0xf1, + 0x0a, 0x4c, 0xb5, 0xeb, 0xbd, 0x46, 0x7f, 0xd3, 0xbd, 0xf3, 0x9b, 0x58, 0x37, 0xcf, 0x62, 0x98, + 0xca, 0x7c, 0x67, 0xa0, 0xdb, 0xeb, 0x53, 0xc2, 0x82, 0x55, 0xd2, 0x36, 0x7a, 0x8d, 0xfe, 0xd5, + 0x83, 0x43, 0xfb, 0x9f, 0x6f, 0xd4, 0xfe, 0xcf, 0xdb, 0x19, 0x37, 0xcf, 0xbe, 0x75, 0x6b, 0x6e, + 0x0f, 0xd6, 0xd9, 0x16, 0xac, 0xac, 0x6a, 0xb4, 0x9b, 0xb4, 0xed, 0xcd, 0x8f, 0x0f, 0x03, 0xb3, + 0xba, 0x35, 0x59, 0x0b, 0xc7, 0xb3, 0xb3, 0xa5, 0x65, 0x9c, 0x2f, 0x2d, 0xe3, 0xfb, 0xd2, 0x32, + 0xde, 0xae, 0xac, 0xda, 0xf9, 0xca, 0xaa, 0x7d, 0x5d, 0x59, 0xb5, 0xe7, 0x4f, 0x43, 0xaa, 0xa7, + 0xb1, 0x6f, 0x13, 0xc1, 0x9c, 0x47, 0x45, 0xa1, 0x8f, 0xb1, 0xaf, 0x9c, 0xb2, 0xec, 0x7d, 0x22, + 0x24, 0x54, 0xc3, 0x29, 0xa6, 0xdc, 0x61, 0x22, 0x88, 0xe7, 0xa0, 0x2e, 0xec, 0xa8, 0x7e, 0x1d, + 0x81, 0xf2, 0x37, 0xd2, 0xc5, 0xb8, 0xfb, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x93, 0x14, 0x28, + 0xc9, 0x03, 0x00, 0x00, } +func (this *EnforcedRestrictionsEVMContract) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*EnforcedRestrictionsEVMContract) + if !ok { + that2, ok := that.(EnforcedRestrictionsEVMContract) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.ContractAddress != that1.ContractAddress { + return false + } + if this.PauseEventSignature != that1.PauseEventSignature { + return false + } + if this.UnpauseEventSignature != that1.UnpauseEventSignature { + return false + } + if this.BlacklistEventSignature != that1.BlacklistEventSignature { + return false + } + if this.UnblacklistEventSignature != that1.UnblacklistEventSignature { + return false + } + return true +} func (this *Params) Equal(that interface{}) bool { if that == nil { return this == nil @@ -135,16 +282,82 @@ func (this *Params) Equal(that interface{}) bool { if this.ContractHookMaxGas != that1.ContractHookMaxGas { return false } - if len(this.EnforcedRestrictionsContracts) != len(that1.EnforcedRestrictionsContracts) { + if len(this.DeprecatedEnforcedRestrictionsContracts) != len(that1.DeprecatedEnforcedRestrictionsContracts) { + return false + } + for i := range this.DeprecatedEnforcedRestrictionsContracts { + if this.DeprecatedEnforcedRestrictionsContracts[i] != that1.DeprecatedEnforcedRestrictionsContracts[i] { + return false + } + } + if len(this.EnforcedRestrictionsEvmContracts) != len(that1.EnforcedRestrictionsEvmContracts) { return false } - for i := range this.EnforcedRestrictionsContracts { - if this.EnforcedRestrictionsContracts[i] != that1.EnforcedRestrictionsContracts[i] { + for i := range this.EnforcedRestrictionsEvmContracts { + if !this.EnforcedRestrictionsEvmContracts[i].Equal(&that1.EnforcedRestrictionsEvmContracts[i]) { return false } } return true } +func (m *EnforcedRestrictionsEVMContract) 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 *EnforcedRestrictionsEVMContract) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EnforcedRestrictionsEVMContract) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.UnblacklistEventSignature) > 0 { + i -= len(m.UnblacklistEventSignature) + copy(dAtA[i:], m.UnblacklistEventSignature) + i = encodeVarintParams(dAtA, i, uint64(len(m.UnblacklistEventSignature))) + i-- + dAtA[i] = 0x2a + } + if len(m.BlacklistEventSignature) > 0 { + i -= len(m.BlacklistEventSignature) + copy(dAtA[i:], m.BlacklistEventSignature) + i = encodeVarintParams(dAtA, i, uint64(len(m.BlacklistEventSignature))) + i-- + dAtA[i] = 0x22 + } + if len(m.UnpauseEventSignature) > 0 { + i -= len(m.UnpauseEventSignature) + copy(dAtA[i:], m.UnpauseEventSignature) + i = encodeVarintParams(dAtA, i, uint64(len(m.UnpauseEventSignature))) + i-- + dAtA[i] = 0x1a + } + if len(m.PauseEventSignature) > 0 { + i -= len(m.PauseEventSignature) + copy(dAtA[i:], m.PauseEventSignature) + i = encodeVarintParams(dAtA, i, uint64(len(m.PauseEventSignature))) + i-- + dAtA[i] = 0x12 + } + if len(m.ContractAddress) > 0 { + i -= len(m.ContractAddress) + copy(dAtA[i:], m.ContractAddress) + i = encodeVarintParams(dAtA, i, uint64(len(m.ContractAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -165,11 +378,25 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.EnforcedRestrictionsContracts) > 0 { - for iNdEx := len(m.EnforcedRestrictionsContracts) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.EnforcedRestrictionsContracts[iNdEx]) - copy(dAtA[i:], m.EnforcedRestrictionsContracts[iNdEx]) - i = encodeVarintParams(dAtA, i, uint64(len(m.EnforcedRestrictionsContracts[iNdEx]))) + if len(m.EnforcedRestrictionsEvmContracts) > 0 { + for iNdEx := len(m.EnforcedRestrictionsEvmContracts) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.EnforcedRestrictionsEvmContracts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.DeprecatedEnforcedRestrictionsContracts) > 0 { + for iNdEx := len(m.DeprecatedEnforcedRestrictionsContracts) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DeprecatedEnforcedRestrictionsContracts[iNdEx]) + copy(dAtA[i:], m.DeprecatedEnforcedRestrictionsContracts[iNdEx]) + i = encodeVarintParams(dAtA, i, uint64(len(m.DeprecatedEnforcedRestrictionsContracts[iNdEx]))) i-- dAtA[i] = 0x12 } @@ -193,6 +420,35 @@ func encodeVarintParams(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *EnforcedRestrictionsEVMContract) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContractAddress) + if l > 0 { + n += 1 + l + sovParams(uint64(l)) + } + l = len(m.PauseEventSignature) + if l > 0 { + n += 1 + l + sovParams(uint64(l)) + } + l = len(m.UnpauseEventSignature) + if l > 0 { + n += 1 + l + sovParams(uint64(l)) + } + l = len(m.BlacklistEventSignature) + if l > 0 { + n += 1 + l + sovParams(uint64(l)) + } + l = len(m.UnblacklistEventSignature) + if l > 0 { + n += 1 + l + sovParams(uint64(l)) + } + return n +} + func (m *Params) Size() (n int) { if m == nil { return 0 @@ -202,12 +458,18 @@ func (m *Params) Size() (n int) { if m.ContractHookMaxGas != 0 { n += 1 + sovParams(uint64(m.ContractHookMaxGas)) } - if len(m.EnforcedRestrictionsContracts) > 0 { - for _, s := range m.EnforcedRestrictionsContracts { + if len(m.DeprecatedEnforcedRestrictionsContracts) > 0 { + for _, s := range m.DeprecatedEnforcedRestrictionsContracts { l = len(s) n += 1 + l + sovParams(uint64(l)) } } + if len(m.EnforcedRestrictionsEvmContracts) > 0 { + for _, e := range m.EnforcedRestrictionsEvmContracts { + l = e.Size() + n += 1 + l + sovParams(uint64(l)) + } + } return n } @@ -217,6 +479,216 @@ func sovParams(x uint64) (n int) { func sozParams(x uint64) (n int) { return sovParams(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (m *EnforcedRestrictionsEVMContract) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EnforcedRestrictionsEVMContract: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EnforcedRestrictionsEVMContract: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + 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 ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContractAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PauseEventSignature", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + 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 ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PauseEventSignature = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnpauseEventSignature", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + 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 ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnpauseEventSignature = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlacklistEventSignature", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + 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 ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BlacklistEventSignature = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnblacklistEventSignature", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + 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 ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnblacklistEventSignature = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipParams(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthParams + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Params) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -267,7 +739,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { } case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EnforcedRestrictionsContracts", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeprecatedEnforcedRestrictionsContracts", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -295,7 +767,41 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.EnforcedRestrictionsContracts = append(m.EnforcedRestrictionsContracts, string(dAtA[iNdEx:postIndex])) + m.DeprecatedEnforcedRestrictionsContracts = append(m.DeprecatedEnforcedRestrictionsContracts, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EnforcedRestrictionsEvmContracts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EnforcedRestrictionsEvmContracts = append(m.EnforcedRestrictionsEvmContracts, EnforcedRestrictionsEVMContract{}) + if err := m.EnforcedRestrictionsEvmContracts[len(m.EnforcedRestrictionsEvmContracts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go index 2b51290b..61b30528 100644 --- a/chain/permissions/types/permissions.pb.go +++ b/chain/permissions/types/permissions.pb.go @@ -5,8 +5,8 @@ package types import ( fmt "fmt" + _ "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" _ "github.com/cosmos/cosmos-sdk/types" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -606,54 +606,6 @@ func (m *RoleIDs) GetRoleIds() []uint32 { return nil } -// AddressVoucher is used to represent a voucher for a specific address -type AddressVoucher struct { - // The Injective address that the voucher is for - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - // The voucher amount - Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` -} - -func (m *AddressVoucher) Reset() { *m = AddressVoucher{} } -func (m *AddressVoucher) String() string { return proto.CompactTextString(m) } -func (*AddressVoucher) ProtoMessage() {} -func (*AddressVoucher) Descriptor() ([]byte, []int) { - return fileDescriptor_6d25f3ecf3806c6c, []int{8} -} -func (m *AddressVoucher) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AddressVoucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_AddressVoucher.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *AddressVoucher) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddressVoucher.Merge(m, src) -} -func (m *AddressVoucher) XXX_Size() int { - return m.Size() -} -func (m *AddressVoucher) XXX_DiscardUnknown() { - xxx_messageInfo_AddressVoucher.DiscardUnknown(m) -} - -var xxx_messageInfo_AddressVoucher proto.InternalMessageInfo - -func (m *AddressVoucher) GetAddress() string { - if m != nil { - return m.Address - } - return "" -} - func init() { proto.RegisterEnum("injective.permissions.v1beta1.Action", Action_name, Action_value) proto.RegisterType((*Namespace)(nil), "injective.permissions.v1beta1.Namespace") @@ -664,7 +616,6 @@ func init() { proto.RegisterType((*Role)(nil), "injective.permissions.v1beta1.Role") proto.RegisterType((*PolicyManagerCapability)(nil), "injective.permissions.v1beta1.PolicyManagerCapability") proto.RegisterType((*RoleIDs)(nil), "injective.permissions.v1beta1.RoleIDs") - proto.RegisterType((*AddressVoucher)(nil), "injective.permissions.v1beta1.AddressVoucher") } func init() { @@ -672,63 +623,58 @@ func init() { } var fileDescriptor_6d25f3ecf3806c6c = []byte{ - // 881 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x41, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xda, 0xae, 0xd7, 0x79, 0x6e, 0x12, 0x33, 0x8a, 0x9a, 0x4d, 0x4b, 0x6d, 0xcb, 0x80, - 0x08, 0x85, 0xda, 0x6a, 0x90, 0x10, 0x97, 0x4a, 0x38, 0xf6, 0x96, 0x2e, 0xc4, 0x6b, 0x33, 0x4e, - 0x2a, 0x95, 0xcb, 0x6a, 0xbc, 0x1e, 0x25, 0x43, 0xbc, 0x3b, 0x2b, 0xcf, 0xc6, 0xc8, 0x37, 0xdf, - 0xb9, 0x70, 0xe0, 0x2f, 0x70, 0xe5, 0x77, 0xf4, 0x98, 0x23, 0xe2, 0x10, 0xa1, 0xe4, 0xc6, 0xaf, - 0x40, 0x33, 0x3b, 0x6b, 0x6f, 0x25, 0xda, 0x44, 0x9c, 0x3c, 0xef, 0x7d, 0xfb, 0x7d, 0xf3, 0xde, - 0xf7, 0x9e, 0x77, 0xa1, 0xcd, 0xc2, 0x9f, 0xa8, 0x1f, 0xb3, 0x39, 0x6d, 0x47, 0x74, 0x16, 0x30, - 0x21, 0x18, 0x0f, 0x45, 0x7b, 0xfe, 0x6c, 0x4c, 0x63, 0xf2, 0x2c, 0x9b, 0x6b, 0x45, 0x33, 0x1e, - 0x73, 0xf4, 0x78, 0x45, 0x68, 0x65, 0x41, 0x4d, 0x78, 0x58, 0xf3, 0xb9, 0x08, 0xb8, 0x68, 0x8f, - 0x89, 0xa0, 0x2b, 0x15, 0x9f, 0xb3, 0x30, 0xa1, 0x3f, 0xdc, 0x39, 0xe5, 0xa7, 0x5c, 0x1d, 0xdb, - 0xf2, 0x94, 0x64, 0x9b, 0xbf, 0x15, 0x61, 0xc3, 0x25, 0x01, 0x15, 0x11, 0xf1, 0x29, 0xda, 0x81, - 0x7b, 0x13, 0x1a, 0xf2, 0xc0, 0x32, 0x1a, 0xc6, 0xfe, 0x06, 0x4e, 0x02, 0xf4, 0x08, 0x36, 0x7e, - 0x26, 0x22, 0xf0, 0xce, 0x38, 0x3f, 0xb7, 0xf2, 0x0a, 0x29, 0xcb, 0xc4, 0x4b, 0xce, 0xcf, 0x91, - 0x0b, 0xd5, 0x19, 0x9f, 0x52, 0x2f, 0x53, 0x92, 0x55, 0x68, 0x14, 0xf6, 0x2b, 0x07, 0x1f, 0xb5, - 0xde, 0x5b, 0x70, 0x0b, 0xf3, 0x29, 0xc5, 0xdb, 0x92, 0x3c, 0x5c, 0xa3, 0xe8, 0x3b, 0xa8, 0x10, - 0x3f, 0xe6, 0x33, 0x4f, 0x02, 0xc2, 0x2a, 0x2a, 0xa9, 0xcf, 0x6e, 0x91, 0xea, 0x48, 0x86, 0xd4, - 0x13, 0x18, 0xc8, 0xea, 0x8c, 0x06, 0xb0, 0xa9, 0x6a, 0x0b, 0x48, 0x48, 0x4e, 0xe9, 0x4c, 0x58, - 0xf7, 0x94, 0xda, 0x93, 0x3b, 0x14, 0xd6, 0x4f, 0x28, 0xf8, 0xfe, 0x6c, 0x1d, 0x08, 0x74, 0x0c, - 0xdb, 0x11, 0x9f, 0x32, 0x7f, 0xe1, 0x89, 0x98, 0xc4, 0x17, 0x82, 0x0a, 0xab, 0xa4, 0x24, 0x3f, - 0xbf, 0x45, 0x72, 0xa8, 0x58, 0x23, 0x45, 0xc2, 0x5b, 0x51, 0x26, 0xa2, 0x02, 0xcd, 0xe1, 0x91, - 0x56, 0xd5, 0x85, 0x7a, 0x3e, 0x89, 0xc8, 0x98, 0x4d, 0x59, 0xcc, 0xa8, 0xb0, 0x4c, 0x75, 0xc3, - 0x57, 0x77, 0xba, 0x41, 0x57, 0xda, 0x4d, 0xf9, 0x0b, 0xbc, 0x17, 0xfd, 0x27, 0xc0, 0xa8, 0x40, - 0x7b, 0x50, 0xa6, 0x73, 0x3d, 0xd6, 0xb2, 0x1a, 0xab, 0x49, 0xe7, 0x6a, 0xaa, 0xcd, 0xaf, 0x01, - 0xd6, 0x9e, 0xca, 0xb5, 0x50, 0xae, 0xa6, 0x6b, 0xa1, 0x02, 0x99, 0x4d, 0x66, 0x94, 0x6f, 0x14, - 0x64, 0x56, 0x05, 0x92, 0x29, 0x49, 0x8a, 0x2d, 0x10, 0x82, 0xa2, 0x4c, 0x6b, 0xa2, 0x3a, 0xa3, - 0x07, 0x50, 0x52, 0x02, 0x29, 0x51, 0x47, 0xcd, 0xe7, 0x50, 0xc9, 0x38, 0x8f, 0x2c, 0x30, 0xb5, - 0x1d, 0x9a, 0x9d, 0x86, 0xef, 0xb8, 0xf8, 0x17, 0x03, 0xee, 0x67, 0x6d, 0x46, 0xcf, 0xd5, 0x3d, - 0x8c, 0x87, 0x8a, 0xbf, 0x75, 0xf0, 0xc9, 0xed, 0x4b, 0xc4, 0x78, 0x88, 0x35, 0x09, 0xd5, 0xa1, - 0xc2, 0x84, 0x37, 0x61, 0x82, 0x8c, 0xa7, 0x74, 0xa2, 0xf6, 0xbe, 0x8c, 0x81, 0x89, 0x9e, 0xce, - 0xc8, 0xbf, 0x05, 0x13, 0x9e, 0xa0, 0x44, 0xc2, 0x05, 0x05, 0x97, 0x99, 0x18, 0xa9, 0xb8, 0x79, - 0x02, 0x45, 0xd9, 0x8c, 0x34, 0x20, 0x24, 0xc1, 0xca, 0x00, 0x79, 0x46, 0xbb, 0x60, 0xaa, 0xb5, - 0x64, 0x89, 0xea, 0x26, 0x2e, 0xc9, 0xd0, 0x99, 0xa0, 0x06, 0x54, 0xde, 0xfe, 0x1b, 0x49, 0x30, - 0x9b, 0x6a, 0xfe, 0x61, 0xc0, 0xee, 0x3b, 0x26, 0xfd, 0x1e, 0xc3, 0xd6, 0x4e, 0xe4, 0xff, 0xa7, - 0x13, 0x3e, 0x09, 0x53, 0x2b, 0x74, 0xab, 0xe0, 0x93, 0x50, 0x5b, 0x21, 0x17, 0x49, 0x3e, 0x20, - 0xad, 0xb0, 0x8a, 0x0a, 0x35, 0x7d, 0x12, 0x4a, 0x27, 0x9a, 0x1f, 0x83, 0x29, 0x7d, 0x70, 0x7a, - 0x6a, 0xdd, 0x74, 0xdb, 0xc2, 0x32, 0x1a, 0x85, 0xfd, 0x4d, 0x6c, 0x26, 0x7d, 0x8b, 0xe6, 0xef, - 0x06, 0x6c, 0x75, 0x26, 0x93, 0x19, 0x15, 0xe2, 0x15, 0xbf, 0xf0, 0xcf, 0x92, 0xf1, 0x93, 0x24, - 0x93, 0x76, 0xa3, 0x43, 0xb4, 0x00, 0x73, 0x9e, 0x3c, 0xa4, 0xda, 0xa9, 0x1c, 0xec, 0xb5, 0x92, - 0x57, 0x5f, 0x4b, 0xbe, 0xfa, 0x56, 0x4d, 0x74, 0x39, 0x0b, 0x0f, 0x7b, 0x6f, 0xae, 0xea, 0xb9, - 0xbf, 0xae, 0xea, 0x9f, 0x9e, 0xb2, 0xf8, 0xec, 0x62, 0xdc, 0xf2, 0x79, 0xd0, 0xd6, 0xef, 0xc9, - 0xe4, 0xe7, 0xa9, 0x98, 0x9c, 0xb7, 0xe3, 0x45, 0x44, 0x85, 0x22, 0xfc, 0x73, 0x55, 0xff, 0x40, - 0x8b, 0x7f, 0xc1, 0x03, 0x16, 0xd3, 0x20, 0x8a, 0x17, 0x38, 0xbd, 0xef, 0xc9, 0xa5, 0x01, 0xa5, - 0xc4, 0x1c, 0xb4, 0x0d, 0x95, 0x13, 0x77, 0x34, 0xb4, 0xbb, 0xce, 0x0b, 0xc7, 0xee, 0x55, 0x73, - 0xa8, 0x0c, 0xc5, 0xbe, 0xe3, 0x1e, 0x57, 0x0d, 0x54, 0x01, 0x13, 0xdb, 0x5d, 0xdb, 0x79, 0x65, - 0x57, 0xf3, 0x32, 0x7d, 0x78, 0x82, 0xdd, 0x6a, 0x51, 0x9e, 0x46, 0xb6, 0xdb, 0xab, 0x96, 0xd1, - 0x16, 0xc0, 0xe8, 0x64, 0x68, 0x63, 0x4f, 0x21, 0x55, 0xf4, 0x18, 0x1e, 0xf4, 0x07, 0x3d, 0xe7, - 0xc5, 0x6b, 0x6f, 0x38, 0x38, 0x72, 0xba, 0xaf, 0xbd, 0x7e, 0xc7, 0xed, 0x7c, 0x6b, 0xe3, 0x51, - 0x75, 0xb9, 0x5c, 0x7e, 0x83, 0x3e, 0x84, 0x1d, 0x0d, 0x77, 0x07, 0xee, 0x31, 0xee, 0x74, 0x8f, - 0xbd, 0x97, 0x83, 0xc1, 0xf7, 0x12, 0x5c, 0x1a, 0xa8, 0x0e, 0xbb, 0x1a, 0xc5, 0x83, 0x23, 0xdb, - 0x1b, 0xda, 0xb8, 0xef, 0x8c, 0x46, 0xce, 0xc0, 0x55, 0xec, 0x65, 0x3e, 0x43, 0x57, 0x0f, 0x64, - 0xb5, 0x97, 0xc5, 0xc3, 0xf3, 0x37, 0xd7, 0x35, 0xe3, 0xf2, 0xba, 0x66, 0xfc, 0x7d, 0x5d, 0x33, - 0x7e, 0xbd, 0xa9, 0xe5, 0x2e, 0x6f, 0x6a, 0xb9, 0x3f, 0x6f, 0x6a, 0xb9, 0x1f, 0x7f, 0xc8, 0x78, - 0xe6, 0xa4, 0xfb, 0x72, 0x44, 0xc6, 0x62, 0xfd, 0xe5, 0x7a, 0xea, 0xf3, 0x19, 0xcd, 0x86, 0x67, - 0x84, 0x85, 0xed, 0x80, 0x4f, 0x2e, 0xa6, 0x54, 0xbc, 0xf5, 0x59, 0x53, 0x16, 0x8f, 0x4b, 0xea, - 0xa3, 0xf3, 0xe5, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xab, 0x07, 0xd1, 0x6c, 0xfc, 0x06, 0x00, - 0x00, + // 809 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xc1, 0x6e, 0xdb, 0x46, + 0x10, 0x35, 0x25, 0x45, 0x94, 0x47, 0xb1, 0x4d, 0x2c, 0x8c, 0x98, 0x49, 0x1a, 0x45, 0x50, 0x5b, + 0xc0, 0x4d, 0x50, 0x11, 0x49, 0x81, 0xa2, 0x97, 0x00, 0x75, 0x24, 0xa6, 0x61, 0x6b, 0x91, 0xea, + 0xd2, 0x2e, 0x90, 0x5e, 0x88, 0x15, 0xb5, 0xb0, 0xb7, 0x16, 0xb9, 0x04, 0x97, 0x52, 0xe1, 0x9b, + 0xee, 0xbd, 0xf4, 0xd0, 0xef, 0xe8, 0x77, 0xf4, 0xe8, 0x63, 0x8f, 0x85, 0xfd, 0x23, 0xc5, 0x2e, + 0x57, 0x12, 0x03, 0x34, 0xb1, 0xd1, 0xdb, 0xcc, 0xbc, 0x7d, 0x6f, 0x67, 0xdf, 0x8c, 0x44, 0x70, + 0x58, 0xfa, 0x0b, 0x8d, 0x0b, 0xb6, 0xa0, 0x4e, 0x46, 0xf3, 0x84, 0x09, 0xc1, 0x78, 0x2a, 0x9c, + 0xc5, 0x8b, 0x09, 0x2d, 0xc8, 0x8b, 0x6a, 0xad, 0x9f, 0xe5, 0xbc, 0xe0, 0xe8, 0xc9, 0x9a, 0xd0, + 0xaf, 0x82, 0x9a, 0xf0, 0xa8, 0x13, 0x73, 0x91, 0x70, 0xe1, 0x4c, 0x88, 0xa0, 0x6b, 0x95, 0x98, + 0xb3, 0xb4, 0xa4, 0x3f, 0xda, 0x3f, 0xe3, 0x67, 0x5c, 0x85, 0x8e, 0x8c, 0x74, 0xf5, 0xf9, 0xa6, + 0x8b, 0x98, 0x27, 0x09, 0x4f, 0x9d, 0x05, 0x9f, 0xc7, 0xe7, 0x34, 0x97, 0x9d, 0xac, 0xe3, 0xf2, + 0x70, 0xef, 0x8f, 0x06, 0x6c, 0xfb, 0x24, 0xa1, 0x22, 0x23, 0x31, 0x45, 0xfb, 0x70, 0x6f, 0x4a, + 0x53, 0x9e, 0xd8, 0x46, 0xd7, 0x38, 0xdc, 0xc6, 0x65, 0x82, 0x1e, 0xc3, 0xf6, 0xaf, 0x44, 0x24, + 0xd1, 0x39, 0xe7, 0x17, 0x76, 0x4d, 0x21, 0x2d, 0x59, 0x78, 0xcb, 0xf9, 0x05, 0xf2, 0xc1, 0xca, + 0xf9, 0x8c, 0x46, 0x95, 0xfe, 0xed, 0x7a, 0xb7, 0x7e, 0xd8, 0x7e, 0xf9, 0x69, 0xff, 0xa3, 0xaf, + 0xeb, 0x63, 0x3e, 0xa3, 0x78, 0x4f, 0x92, 0xc7, 0x1b, 0x14, 0x7d, 0x0f, 0x6d, 0x12, 0x17, 0x3c, + 0x8f, 0x24, 0x20, 0xec, 0x86, 0x92, 0xfa, 0xe2, 0x16, 0xa9, 0x23, 0xc9, 0x90, 0x7a, 0x02, 0x03, + 0x59, 0xc7, 0x28, 0x80, 0x1d, 0xd5, 0x5b, 0x42, 0x52, 0x72, 0x46, 0x73, 0x61, 0xdf, 0x53, 0x6a, + 0xcf, 0xee, 0xd0, 0xd8, 0xa8, 0xa4, 0xe0, 0xfb, 0xf9, 0x26, 0x11, 0xe8, 0x04, 0xf6, 0x32, 0x3e, + 0x63, 0xf1, 0x65, 0x24, 0x0a, 0x52, 0xcc, 0x05, 0x15, 0x76, 0x53, 0x49, 0x3e, 0xbf, 0x45, 0x72, + 0xac, 0x58, 0xa1, 0x22, 0xe1, 0xdd, 0xac, 0x92, 0x51, 0x81, 0x16, 0xf0, 0x58, 0xab, 0xea, 0x46, + 0xa3, 0x98, 0x64, 0x64, 0xc2, 0x66, 0xac, 0x60, 0x54, 0xd8, 0xa6, 0xba, 0xe1, 0xeb, 0x3b, 0xdd, + 0xa0, 0x3b, 0x1d, 0xac, 0xf8, 0x97, 0xf8, 0x61, 0xf6, 0x9f, 0x00, 0xa3, 0x02, 0x3d, 0x84, 0x16, + 0x5d, 0xe8, 0xb1, 0xb6, 0xd4, 0x58, 0x4d, 0xba, 0x50, 0x53, 0xed, 0x7d, 0x03, 0xb0, 0xf1, 0x54, + 0xae, 0x85, 0x72, 0x75, 0xb5, 0x16, 0x2a, 0x91, 0xd5, 0x72, 0x46, 0xb5, 0x6e, 0x5d, 0x56, 0x55, + 0x22, 0x99, 0x92, 0xa4, 0xd8, 0x02, 0x21, 0x68, 0xc8, 0xb2, 0x26, 0xaa, 0x18, 0x3d, 0x80, 0xa6, + 0x12, 0x58, 0x11, 0x75, 0xd6, 0x7b, 0x05, 0xed, 0x8a, 0xf3, 0xc8, 0x06, 0x53, 0xdb, 0xa1, 0xd9, + 0xab, 0xf4, 0x03, 0x17, 0xff, 0x66, 0xc0, 0xfd, 0xaa, 0xcd, 0xe8, 0x95, 0xba, 0x87, 0xf1, 0x54, + 0xf1, 0x77, 0x5f, 0x7e, 0x7e, 0xfb, 0x12, 0x31, 0x9e, 0x62, 0x4d, 0x42, 0x4f, 0xa1, 0xcd, 0x44, + 0x34, 0x65, 0x82, 0x4c, 0x66, 0x74, 0xaa, 0xf6, 0xbe, 0x85, 0x81, 0x89, 0xa1, 0xae, 0xc8, 0x9f, + 0x05, 0x13, 0x91, 0xa0, 0x44, 0xc2, 0x75, 0x05, 0xb7, 0x98, 0x08, 0x55, 0xde, 0x3b, 0x85, 0x86, + 0x7c, 0x8c, 0x34, 0x20, 0x25, 0xc9, 0xda, 0x00, 0x19, 0xa3, 0x03, 0x30, 0xd5, 0x5a, 0xb2, 0x52, + 0x75, 0x07, 0x37, 0x65, 0xea, 0x4d, 0x51, 0x17, 0xda, 0xef, 0xff, 0x8c, 0x24, 0x58, 0x2d, 0xf5, + 0xfe, 0x34, 0xe0, 0xe0, 0x03, 0x93, 0xfe, 0x88, 0x61, 0x1b, 0x27, 0x6a, 0xff, 0xd3, 0x89, 0x98, + 0xa4, 0x2b, 0x2b, 0xf4, 0x53, 0x21, 0x26, 0xa9, 0xb6, 0x42, 0x2e, 0x92, 0x3c, 0x20, 0xad, 0xb0, + 0x1b, 0x0a, 0x35, 0x63, 0x92, 0x4a, 0x27, 0x7a, 0x9f, 0x81, 0x29, 0x7d, 0xf0, 0x86, 0x6a, 0xdd, + 0xf4, 0xb3, 0x85, 0x6d, 0x74, 0xeb, 0x87, 0x3b, 0xd8, 0x2c, 0xdf, 0x2d, 0x9e, 0x5d, 0x19, 0xd0, + 0x2c, 0x2f, 0x45, 0x7b, 0xd0, 0x3e, 0xf5, 0xc3, 0xb1, 0x3b, 0xf0, 0xde, 0x78, 0xee, 0xd0, 0xda, + 0x42, 0x2d, 0x68, 0x8c, 0x3c, 0xff, 0xc4, 0x32, 0x50, 0x1b, 0x4c, 0xec, 0x0e, 0x5c, 0xef, 0x27, + 0xd7, 0xaa, 0xc9, 0xf2, 0xeb, 0x53, 0xec, 0x5b, 0x0d, 0x19, 0x85, 0xae, 0x3f, 0xb4, 0x5a, 0x68, + 0x17, 0x20, 0x3c, 0x1d, 0xbb, 0x38, 0x52, 0x88, 0x85, 0x9e, 0xc0, 0x83, 0x51, 0x30, 0xf4, 0xde, + 0xbc, 0x8b, 0xc6, 0xc1, 0xb1, 0x37, 0x78, 0x17, 0x8d, 0x8e, 0xfc, 0xa3, 0xef, 0x5c, 0x1c, 0x5a, + 0xcb, 0xe5, 0xf2, 0x5b, 0xf4, 0x09, 0xec, 0x6b, 0x78, 0x10, 0xf8, 0x27, 0xf8, 0x68, 0x70, 0x12, + 0xbd, 0x0d, 0x82, 0x1f, 0x24, 0xb8, 0x34, 0xd0, 0x53, 0x38, 0xd0, 0x28, 0x0e, 0x8e, 0xdd, 0x68, + 0xec, 0xe2, 0x91, 0x17, 0x86, 0x5e, 0xe0, 0x2b, 0xf6, 0xb2, 0x56, 0xa1, 0xab, 0x03, 0x55, 0xed, + 0x65, 0xe3, 0xf5, 0xc5, 0x5f, 0xd7, 0x1d, 0xe3, 0xea, 0xba, 0x63, 0xfc, 0x73, 0xdd, 0x31, 0x7e, + 0xbf, 0xe9, 0x6c, 0x5d, 0xdd, 0x74, 0xb6, 0xfe, 0xbe, 0xe9, 0x6c, 0xfd, 0xfc, 0xe3, 0x19, 0x2b, + 0xce, 0xe7, 0x93, 0x7e, 0xcc, 0x13, 0xc7, 0x5b, 0xcd, 0xe1, 0x98, 0x4c, 0xc4, 0xe6, 0xf3, 0xf1, + 0x65, 0xcc, 0x73, 0x5a, 0x4d, 0xcf, 0x09, 0x4b, 0x9d, 0x84, 0x4f, 0xe7, 0x33, 0x2a, 0xde, 0xfb, + 0xb6, 0x14, 0x97, 0x19, 0x15, 0x93, 0xa6, 0xfa, 0x33, 0xff, 0xea, 0xdf, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x57, 0x8c, 0x2b, 0x53, 0x81, 0x06, 0x00, 0x00, } func (m *Namespace) Marshal() (dAtA []byte, err error) { @@ -1146,46 +1092,6 @@ func (m *RoleIDs) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AddressVoucher) 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 *AddressVoucher) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AddressVoucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size := m.Voucher.Size() - i -= size - if _, err := m.Voucher.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintPermissions(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintPermissions(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - func encodeVarintPermissions(dAtA []byte, offset int, v uint64) int { offset -= sovPermissions(v) base := offset @@ -1380,21 +1286,6 @@ func (m *RoleIDs) Size() (n int) { return n } -func (m *AddressVoucher) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovPermissions(uint64(l)) - } - l = m.Voucher.Size() - n += 1 + l + sovPermissions(uint64(l)) - return n -} - func sovPermissions(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2555,121 +2446,6 @@ func (m *RoleIDs) Unmarshal(dAtA []byte) error { } return nil } -func (m *AddressVoucher) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AddressVoucher: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AddressVoucher: 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 ErrIntOverflowPermissions - } - 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 ErrInvalidLengthPermissions - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthPermissions - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Voucher", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowPermissions - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthPermissions - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthPermissions - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Voucher.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipPermissions(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthPermissions - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func skipPermissions(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/permissions/types/query.pb.go b/chain/permissions/types/query.pb.go index 636bb128..31be79c9 100644 --- a/chain/permissions/types/query.pb.go +++ b/chain/permissions/types/query.pb.go @@ -6,6 +6,7 @@ package types import ( context "context" fmt "fmt" + types "github.com/InjectiveLabs/sdk-go/chain/common/vouchers/types" _ "github.com/cosmos/cosmos-sdk/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/query" @@ -1018,8 +1019,8 @@ func (m *QueryVouchersRequest) GetDenom() string { } type QueryVouchersResponse struct { - // List of vouchers - Vouchers []*AddressVoucher `protobuf:"bytes,1,rep,name=vouchers,proto3" json:"vouchers,omitempty"` + // List of outstanding vouchers matching the request filter. + Vouchers []types.AddressVoucher `protobuf:"bytes,1,rep,name=vouchers,proto3" json:"vouchers"` } func (m *QueryVouchersResponse) Reset() { *m = QueryVouchersResponse{} } @@ -1055,7 +1056,7 @@ func (m *QueryVouchersResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryVouchersResponse proto.InternalMessageInfo -func (m *QueryVouchersResponse) GetVouchers() []*AddressVoucher { +func (m *QueryVouchersResponse) GetVouchers() []types.AddressVoucher { if m != nil { return m.Vouchers } @@ -1118,7 +1119,7 @@ func (m *QueryVoucherRequest) GetAddress() string { type QueryVoucherResponse struct { // The voucher amount - Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,1,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` + Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,1,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher"` } func (m *QueryVoucherResponse) Reset() { *m = QueryVoucherResponse{} } @@ -1273,86 +1274,87 @@ func init() { } var fileDescriptor_e0ae50f1018498b3 = []byte{ - // 1263 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x98, 0x4f, 0x6f, 0x1b, 0xc5, - 0x1b, 0xc7, 0xb3, 0xfd, 0x35, 0x49, 0xf3, 0x24, 0xbf, 0x56, 0x4c, 0x4d, 0x70, 0xdc, 0xd6, 0xa9, - 0x46, 0x0a, 0x4d, 0x9b, 0xda, 0x5b, 0x3b, 0xa9, 0x13, 0x42, 0x5b, 0x88, 0xe3, 0x14, 0x82, 0x08, - 0xb4, 0x0b, 0xe2, 0x50, 0x09, 0x99, 0xf5, 0x7a, 0xe4, 0x2c, 0xb5, 0x77, 0xb6, 0x9e, 0x75, 0x24, - 0xab, 0xca, 0x85, 0x57, 0x00, 0xe2, 0x8e, 0x78, 0x05, 0x3d, 0x20, 0xce, 0x70, 0x40, 0x88, 0x1c, - 0x2b, 0x71, 0x41, 0x48, 0x44, 0x28, 0xe1, 0xc4, 0x99, 0x17, 0x80, 0x76, 0xf6, 0xd9, 0xf5, 0xda, - 0x71, 0xbc, 0xbb, 0xe1, 0x14, 0xcf, 0x9f, 0xe7, 0xfb, 0x7c, 0x9e, 0x99, 0xd9, 0x99, 0xaf, 0x02, - 0x37, 0x4d, 0xeb, 0x73, 0x66, 0x38, 0xe6, 0x1e, 0x53, 0x6d, 0xd6, 0x6e, 0x99, 0x42, 0x98, 0xdc, - 0x12, 0xea, 0x5e, 0xa1, 0xc6, 0x1c, 0xbd, 0xa0, 0x3e, 0xeb, 0xb0, 0x76, 0x37, 0x6f, 0xb7, 0xb9, - 0xc3, 0xc9, 0xb5, 0x60, 0x6a, 0x3e, 0x34, 0x35, 0x8f, 0x53, 0x33, 0xa9, 0x06, 0x6f, 0x70, 0x39, - 0x53, 0x75, 0x7f, 0x79, 0x41, 0x99, 0xab, 0x0d, 0xce, 0x1b, 0x4d, 0xa6, 0xea, 0xb6, 0xa9, 0xea, - 0x96, 0xc5, 0x1d, 0xdd, 0x91, 0x51, 0xde, 0x68, 0xd6, 0xe0, 0xa2, 0xc5, 0x85, 0x5a, 0xd3, 0x05, - 0x0b, 0x72, 0x1a, 0xdc, 0xb4, 0x70, 0xfc, 0x56, 0x78, 0x5c, 0xb2, 0x04, 0xb3, 0x6c, 0xbd, 0x61, - 0x5a, 0x52, 0xcc, 0x9f, 0x3b, 0xba, 0x12, 0x5b, 0x6f, 0xeb, 0x2d, 0x3f, 0xef, 0xd2, 0xe8, 0xb9, - 0x0d, 0x66, 0x31, 0x61, 0xfa, 0x93, 0xd5, 0x08, 0xe1, 0xd0, 0x5a, 0xc8, 0x00, 0x9a, 0x02, 0xf2, - 0xd8, 0x65, 0x7d, 0x24, 0x53, 0x6a, 0xec, 0x59, 0x87, 0x09, 0x87, 0x3e, 0x81, 0xcb, 0x7d, 0xbd, - 0xc2, 0xe6, 0x96, 0x60, 0x64, 0x13, 0x26, 0x3c, 0xb4, 0xb4, 0x72, 0x5d, 0x59, 0x9c, 0x2e, 0x2e, - 0xe4, 0x47, 0x2e, 0x73, 0xde, 0x0b, 0x2f, 0x9f, 0x3f, 0x38, 0x9c, 0x1f, 0xd3, 0x30, 0x94, 0x5e, - 0x83, 0x2b, 0x52, 0xfb, 0x03, 0xbd, 0xc5, 0x84, 0xad, 0x1b, 0xac, 0xc2, 0x2c, 0xde, 0x4b, 0x5d, - 0x82, 0xab, 0xc3, 0x87, 0x91, 0x61, 0x16, 0x26, 0xea, 0xb2, 0x27, 0xad, 0x5c, 0xff, 0xdf, 0xe2, - 0x94, 0x86, 0x2d, 0x9a, 0x86, 0xd9, 0xfe, 0xb8, 0x40, 0xd1, 0x80, 0xd7, 0x4e, 0x8c, 0xa0, 0xd8, - 0xbb, 0x00, 0x56, 0xd0, 0x2b, 0x05, 0xa7, 0x8b, 0x8b, 0x11, 0x45, 0x05, 0x32, 0x5a, 0x28, 0x96, - 0xe6, 0xe0, 0xd5, 0xfe, 0x24, 0x98, 0x9d, 0xa4, 0x60, 0x5c, 0x12, 0xca, 0x25, 0x9b, 0xd2, 0xbc, - 0x06, 0xfd, 0x6c, 0x90, 0x36, 0x40, 0x7a, 0x08, 0x53, 0x81, 0x2c, 0x2e, 0x73, 0x7c, 0xa2, 0x5e, - 0x28, 0xad, 0x40, 0x5a, 0x66, 0xd8, 0x30, 0x1c, 0xde, 0x16, 0xe5, 0xae, 0xc6, 0x9b, 0xa3, 0x99, - 0x08, 0x81, 0xf3, 0x6d, 0xde, 0x64, 0xe9, 0x73, 0xb2, 0x53, 0xfe, 0xa6, 0xcb, 0x30, 0x37, 0x44, - 0xa5, 0xb7, 0x15, 0xba, 0xec, 0xf7, 0xb7, 0xc2, 0x6b, 0xd1, 0x87, 0x98, 0xda, 0x9d, 0x2c, 0xca, - 0x5e, 0xec, 0xe8, 0xd4, 0x29, 0x18, 0x97, 0xb1, 0x98, 0xdb, 0x6b, 0xd0, 0x02, 0x26, 0xef, 0xd7, - 0xc1, 0xe4, 0x29, 0x18, 0x77, 0x09, 0xfd, 0xdc, 0x5e, 0x83, 0xde, 0x09, 0xa5, 0xde, 0xd1, 0x2d, - 0xbd, 0xc1, 0xda, 0x62, 0xf4, 0x4e, 0x34, 0x43, 0x49, 0x7a, 0x11, 0x98, 0xe4, 0x43, 0xf8, 0xbf, - 0xab, 0x5b, 0x6d, 0xe1, 0x00, 0x1e, 0x91, 0x5b, 0x11, 0x1b, 0x12, 0xd2, 0xd2, 0x66, 0xda, 0x21, - 0x61, 0xba, 0x8d, 0x67, 0x31, 0x3c, 0x63, 0xe4, 0xca, 0xa4, 0x61, 0x12, 0x93, 0xe3, 0xda, 0xf8, - 0x4d, 0x6a, 0x9e, 0x2c, 0x35, 0xe0, 0xde, 0x81, 0x99, 0x30, 0x37, 0x9e, 0xa3, 0x24, 0xd8, 0xd3, - 0x21, 0x6c, 0x5a, 0x84, 0x8c, 0x77, 0x1d, 0xf0, 0xa6, 0x69, 0x74, 0x3f, 0x72, 0x74, 0xa7, 0x23, - 0x58, 0xc4, 0xba, 0x0a, 0xfc, 0xcc, 0x07, 0x63, 0x90, 0xf0, 0x63, 0xb8, 0x64, 0xcb, 0x91, 0xaa, - 0xc0, 0x21, 0x5c, 0xdb, 0xa5, 0xa8, 0x3b, 0x25, 0xa4, 0xa7, 0x5d, 0xb4, 0xfb, 0xd4, 0xe9, 0x7d, - 0x58, 0x08, 0x25, 0x45, 0xfc, 0x4d, 0xdd, 0xd6, 0x6b, 0x66, 0xd3, 0x74, 0xcc, 0x28, 0xe6, 0x6f, - 0x15, 0x78, 0x3d, 0x2a, 0x1e, 0xf9, 0xf7, 0xe0, 0x0a, 0xf2, 0xe3, 0x1a, 0x57, 0x8d, 0xd0, 0x34, - 0xac, 0xa5, 0x14, 0xab, 0x96, 0xc1, 0x34, 0x5d, 0x6d, 0xce, 0x3e, 0x2d, 0x3f, 0xbd, 0x0d, 0x29, - 0x49, 0xf8, 0x09, 0xef, 0x18, 0xbb, 0x91, 0x87, 0xbb, 0x86, 0xb7, 0x52, 0x6f, 0x36, 0xe2, 0x6f, - 0xc3, 0x85, 0x3d, 0xec, 0x43, 0xd6, 0x5c, 0x04, 0xeb, 0x46, 0xbd, 0xde, 0x66, 0x42, 0xa0, 0x92, - 0x16, 0x84, 0xd3, 0x2d, 0x7c, 0x2b, 0xfc, 0x91, 0xa8, 0xe3, 0xac, 0x7b, 0x42, 0xfe, 0x71, 0xc6, - 0x26, 0xfd, 0x4a, 0xe9, 0xaf, 0x2c, 0x40, 0xed, 0xc2, 0x24, 0xe6, 0xc2, 0x63, 0x3c, 0x97, 0xf7, - 0x5e, 0xda, 0xbc, 0xfb, 0xd2, 0x06, 0x7c, 0x9b, 0xdc, 0xb4, 0xca, 0x15, 0xf7, 0xa5, 0xf9, 0xfd, - 0x70, 0xfe, 0x46, 0xc3, 0x74, 0x76, 0x3b, 0xb5, 0xbc, 0xc1, 0x5b, 0x2a, 0x3e, 0xcb, 0xde, 0x9f, - 0x9c, 0xa8, 0x3f, 0x55, 0x9d, 0xae, 0xcd, 0x84, 0x0c, 0xf8, 0xfb, 0x70, 0xfe, 0x15, 0x14, 0xbf, - 0xcd, 0x5b, 0xa6, 0xc3, 0x5a, 0xb6, 0xd3, 0xd5, 0xfc, 0x7c, 0x74, 0x0e, 0xbf, 0xd6, 0x1d, 0x5e, - 0xef, 0x34, 0x99, 0x7b, 0xca, 0xfc, 0x2b, 0x94, 0x7e, 0x8a, 0x5f, 0x5f, 0xdf, 0x10, 0x12, 0x6f, - 0xc0, 0xb8, 0x7b, 0xa8, 0xfd, 0xeb, 0x3b, 0xea, 0x44, 0xbf, 0xe3, 0xbd, 0xe0, 0x9e, 0x86, 0x17, - 0x59, 0xfc, 0xe3, 0x32, 0x8c, 0x4b, 0x7d, 0xf2, 0x8d, 0x02, 0x13, 0xde, 0x3b, 0x4a, 0x0a, 0x11, - 0x42, 0x27, 0x1f, 0xf2, 0x4c, 0x31, 0x49, 0x88, 0x87, 0x4f, 0x73, 0x5f, 0xfc, 0xfa, 0xd7, 0xd7, - 0xe7, 0x6e, 0x90, 0x05, 0x35, 0x8e, 0x4b, 0x21, 0x3f, 0x29, 0x70, 0x69, 0xe0, 0xb1, 0x26, 0xeb, - 0x71, 0xd2, 0x0e, 0x37, 0x00, 0x99, 0x37, 0xcf, 0x14, 0x8b, 0xec, 0xab, 0x92, 0xbd, 0x40, 0xd4, - 0x08, 0xf6, 0xe0, 0x9d, 0xac, 0x7a, 0xf6, 0x81, 0xbc, 0x50, 0x00, 0x7a, 0x06, 0x81, 0xdc, 0x4d, - 0x04, 0x11, 0xb0, 0x97, 0x92, 0x86, 0x21, 0x76, 0x41, 0x62, 0x2f, 0x91, 0x9b, 0x71, 0xb1, 0x05, - 0xf9, 0x4e, 0x81, 0xa9, 0x40, 0x89, 0xac, 0x24, 0x4a, 0xec, 0xe3, 0xde, 0x4d, 0x18, 0x85, 0xb4, - 0x6b, 0x92, 0xb6, 0x48, 0xee, 0xc4, 0xa5, 0x55, 0x9f, 0xcb, 0x55, 0xde, 0x27, 0x07, 0x0a, 0xcc, - 0x84, 0x5f, 0x73, 0xb2, 0x1a, 0x87, 0x60, 0x88, 0x8f, 0xc8, 0xac, 0x25, 0x0f, 0x44, 0xfa, 0x2d, - 0x49, 0xff, 0x16, 0xb9, 0x1f, 0x41, 0x2f, 0x0d, 0x45, 0xb5, 0xd6, 0xad, 0x4a, 0x33, 0xe2, 0x97, - 0xa0, 0x3e, 0x97, 0xcd, 0x7d, 0xf2, 0x8b, 0x02, 0x33, 0x61, 0x57, 0x14, 0xaf, 0x94, 0x21, 0x6e, - 0x2c, 0x5e, 0x29, 0xc3, 0x0c, 0x18, 0xad, 0xc8, 0x52, 0x1e, 0x90, 0x7b, 0x11, 0xa5, 0x78, 0xbe, - 0xcc, 0xad, 0xc5, 0x2d, 0xaa, 0x57, 0x8a, 0xdb, 0xda, 0x27, 0x3f, 0xe2, 0xa6, 0xf8, 0x26, 0x25, - 0xfe, 0xa6, 0x0c, 0x38, 0xac, 0xf8, 0x9b, 0x32, 0x68, 0xb4, 0xe8, 0x3d, 0x59, 0x49, 0x89, 0xac, - 0xc4, 0xd8, 0x94, 0xc0, 0x8d, 0x05, 0xc7, 0xea, 0x67, 0x05, 0xa6, 0x43, 0xb2, 0xa4, 0x94, 0x90, - 0xc3, 0xe7, 0x5f, 0x4d, 0x1c, 0x77, 0x86, 0x33, 0xe5, 0xe3, 0xf7, 0xb6, 0x01, 0x3b, 0xe4, 0x99, - 0xba, 0xd8, 0xef, 0x97, 0xc8, 0x1b, 0xb1, 0x2e, 0xf0, 0x61, 0xbe, 0x2c, 0xb3, 0x7e, 0x96, 0x50, - 0x2c, 0xe8, 0x81, 0x2c, 0x68, 0x8d, 0x94, 0xa2, 0xde, 0x80, 0x7e, 0x0f, 0x17, 0xec, 0xc8, 0x3f, - 0x0a, 0xcc, 0x9d, 0x6a, 0xa2, 0x48, 0x25, 0x3e, 0xd9, 0xe9, 0x1e, 0x2e, 0xb3, 0xf5, 0x1f, 0x55, - 0xb0, 0xd4, 0xf7, 0x64, 0xa9, 0x15, 0x52, 0x8e, 0x57, 0xea, 0x30, 0xbb, 0x17, 0x94, 0xfd, 0x42, - 0x81, 0x0b, 0xbe, 0xd7, 0x22, 0xcb, 0x71, 0xf8, 0x06, 0x7c, 0x5c, 0x66, 0x25, 0x59, 0x50, 0xc2, - 0x67, 0xcf, 0x37, 0x6d, 0x01, 0xf0, 0xf7, 0x0a, 0x4c, 0xa2, 0x1a, 0x29, 0x26, 0x48, 0xed, 0xe3, - 0x2e, 0x27, 0x8a, 0x41, 0xda, 0xb7, 0x25, 0xed, 0x3a, 0x59, 0x8b, 0x47, 0x1b, 0xba, 0x7a, 0x3d, - 0xaf, 0xb8, 0x4f, 0x7e, 0x50, 0x60, 0xf6, 0x51, 0x2f, 0x22, 0x64, 0xc2, 0xe2, 0x7d, 0xfb, 0x27, - 0x0d, 0x5d, 0xbc, 0x6f, 0x7f, 0x88, 0xdb, 0xa3, 0xcb, 0xb2, 0x9a, 0x1c, 0x59, 0x8a, 0xa8, 0xa6, - 0x25, 0x63, 0xe5, 0xa7, 0xc2, 0xca, 0x4f, 0x0f, 0x8e, 0xb2, 0xca, 0xcb, 0xa3, 0xac, 0xf2, 0xe7, - 0x51, 0x56, 0xf9, 0xf2, 0x38, 0x3b, 0xf6, 0xf2, 0x38, 0x3b, 0xf6, 0xdb, 0x71, 0x76, 0xec, 0xc9, - 0xe3, 0x90, 0x75, 0xdd, 0xf6, 0x05, 0xdf, 0xd7, 0x6b, 0xa2, 0x27, 0x9f, 0x33, 0x78, 0x9b, 0x85, - 0x9b, 0xbb, 0xba, 0x69, 0xa1, 0xbe, 0xe8, 0xcb, 0x2d, 0x9d, 0x6e, 0x6d, 0x42, 0xfe, 0xab, 0x67, - 0xf9, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x36, 0x6c, 0x4e, 0x0d, 0x40, 0x13, 0x00, 0x00, + // 1272 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x98, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xc7, 0xb3, 0xa5, 0x49, 0x9a, 0x97, 0xd0, 0x4a, 0x53, 0x13, 0x1c, 0xb7, 0x75, 0xab, 0x91, + 0xd2, 0x24, 0x4d, 0xe3, 0xad, 0x9d, 0xd4, 0x09, 0xa5, 0x2d, 0x8a, 0x93, 0x14, 0x8a, 0x48, 0x69, + 0x0d, 0xe2, 0x50, 0x09, 0x99, 0xf5, 0x7a, 0xe4, 0x2c, 0xb5, 0x77, 0xb6, 0x3b, 0xeb, 0x48, 0x56, + 0xc9, 0x85, 0xbf, 0x00, 0x89, 0x3b, 0x42, 0x1c, 0x38, 0x72, 0xe0, 0x0f, 0x80, 0x43, 0x85, 0xc8, + 0xb1, 0x12, 0x17, 0xc4, 0xa1, 0x42, 0x09, 0x7f, 0x02, 0x7f, 0x00, 0xda, 0xd9, 0xb7, 0x3f, 0xfc, + 0x23, 0xde, 0xdd, 0x70, 0x8a, 0x67, 0x67, 0xde, 0xf7, 0x7d, 0xbe, 0x33, 0xb3, 0xfb, 0x9e, 0x02, + 0x4b, 0x86, 0xf9, 0x25, 0xd3, 0x1d, 0x63, 0x9f, 0xa9, 0x16, 0xb3, 0xdb, 0x86, 0x10, 0x06, 0x37, + 0x85, 0xba, 0x5f, 0xac, 0x33, 0x47, 0x2b, 0xaa, 0xcf, 0x3b, 0xcc, 0xee, 0x16, 0x2c, 0x9b, 0x3b, + 0x9c, 0x5c, 0x09, 0x96, 0x16, 0x22, 0x4b, 0x0b, 0xb8, 0x34, 0x97, 0x69, 0xf2, 0x26, 0x97, 0x2b, + 0x55, 0xf7, 0x97, 0x17, 0x94, 0xbb, 0xdc, 0xe4, 0xbc, 0xd9, 0x62, 0xaa, 0x66, 0x19, 0xaa, 0x66, + 0x9a, 0xdc, 0xd1, 0x1c, 0x19, 0xe5, 0xcd, 0xe6, 0x75, 0x2e, 0xda, 0x5c, 0xa8, 0x75, 0x4d, 0xb0, + 0x20, 0xa7, 0xce, 0x0d, 0x13, 0xe7, 0x6f, 0x44, 0xe7, 0x25, 0x4b, 0xb0, 0xca, 0xd2, 0x9a, 0x86, + 0x29, 0xc5, 0x70, 0xed, 0x72, 0xe8, 0x44, 0xe7, 0xed, 0x36, 0x37, 0xd5, 0x7d, 0xde, 0xd1, 0xf7, + 0x98, 0xed, 0xba, 0x09, 0x7e, 0xfb, 0xc2, 0xa3, 0x6d, 0x5b, 0x9a, 0xad, 0xb5, 0xc5, 0xa0, 0xf0, + 0xb0, 0xb5, 0x4d, 0x66, 0x32, 0x61, 0xf8, 0x8b, 0xd5, 0x18, 0xe1, 0xc8, 0xc6, 0xc9, 0x00, 0x9a, + 0x01, 0xf2, 0xc4, 0x35, 0xf6, 0x58, 0xa6, 0xac, 0xb2, 0xe7, 0x1d, 0x26, 0x1c, 0xfa, 0x14, 0x2e, + 0xf6, 0x3c, 0x15, 0x16, 0x37, 0x05, 0x23, 0x5b, 0x30, 0xe1, 0xa1, 0x65, 0x95, 0x6b, 0xca, 0xe2, + 0x74, 0x69, 0xbe, 0x30, 0xf2, 0x4c, 0x0a, 0x5e, 0x78, 0xe5, 0xec, 0xe1, 0xeb, 0xab, 0x63, 0x55, + 0x0c, 0xa5, 0x57, 0xe0, 0x92, 0xd4, 0x7e, 0xa4, 0xb5, 0x99, 0xb0, 0x34, 0x9d, 0x6d, 0x33, 0x93, + 0x87, 0xa9, 0xcb, 0x70, 0x79, 0xf8, 0x34, 0x32, 0xcc, 0xc2, 0x44, 0x43, 0x3e, 0xc9, 0x2a, 0xd7, + 0xde, 0x58, 0x9c, 0xaa, 0xe2, 0x88, 0x66, 0x61, 0xb6, 0x37, 0x2e, 0x50, 0xd4, 0xe1, 0xed, 0x81, + 0x19, 0x14, 0xfb, 0x00, 0xc0, 0x0c, 0x9e, 0x4a, 0xc1, 0xe9, 0xd2, 0x62, 0x8c, 0xa9, 0x40, 0xa6, + 0x1a, 0x89, 0xa5, 0x2b, 0xf0, 0x56, 0x6f, 0x12, 0xcc, 0x4e, 0x32, 0x30, 0x2e, 0x09, 0xe5, 0x96, + 0x4d, 0x55, 0xbd, 0x01, 0xfd, 0xa2, 0x9f, 0x36, 0x40, 0x7a, 0x00, 0x53, 0x81, 0x2c, 0x6e, 0x73, + 0x72, 0xa2, 0x30, 0x94, 0x6e, 0x43, 0x56, 0x66, 0xd8, 0xd4, 0x1d, 0x6e, 0x8b, 0x4a, 0xb7, 0xca, + 0x5b, 0xa3, 0x99, 0x08, 0x81, 0xb3, 0x36, 0x6f, 0xb1, 0xec, 0x19, 0xf9, 0x50, 0xfe, 0xa6, 0xab, + 0x30, 0x37, 0x44, 0x25, 0x3c, 0x0a, 0x4d, 0x3e, 0xf7, 0x8f, 0xc2, 0x1b, 0xd1, 0x07, 0x98, 0xda, + 0x5d, 0x2c, 0x2a, 0x5e, 0xec, 0xe8, 0xd4, 0x19, 0x18, 0x97, 0xb1, 0x98, 0xdb, 0x1b, 0xd0, 0x22, + 0x26, 0xef, 0xd5, 0xc1, 0xe4, 0x19, 0x18, 0x77, 0x09, 0xfd, 0xdc, 0xde, 0x80, 0xde, 0x8a, 0xa4, + 0xde, 0xd5, 0x4c, 0xad, 0xc9, 0x6c, 0x31, 0xfa, 0x24, 0x5a, 0x91, 0x24, 0x61, 0x04, 0x26, 0xf9, + 0x18, 0xde, 0x74, 0x75, 0x6b, 0x6d, 0x9c, 0xc0, 0x2b, 0x72, 0x23, 0xe6, 0x40, 0x22, 0x5a, 0xd5, + 0x19, 0x3b, 0x22, 0x4c, 0x1f, 0xe2, 0x5d, 0x8c, 0xae, 0x18, 0xb9, 0x33, 0x59, 0x98, 0xc4, 0xe4, + 0xb8, 0x37, 0xfe, 0x90, 0x1a, 0x83, 0x56, 0x03, 0xee, 0x5d, 0x98, 0x89, 0x72, 0xe3, 0x3d, 0x4a, + 0x83, 0x3d, 0x1d, 0xc1, 0xa6, 0x25, 0xc8, 0x79, 0x9f, 0x03, 0xde, 0x32, 0xf4, 0xee, 0x27, 0x8e, + 0xe6, 0x74, 0x04, 0x8b, 0xd9, 0x57, 0x81, 0xaf, 0x79, 0x7f, 0x0c, 0x12, 0x7e, 0x0a, 0x17, 0x2c, + 0x39, 0x53, 0x13, 0x38, 0x85, 0x7b, 0xbb, 0x1c, 0xf7, 0x4d, 0x89, 0xe8, 0x55, 0xcf, 0x5b, 0x3d, + 0xea, 0xf4, 0x1e, 0xcc, 0x47, 0x92, 0x22, 0xfe, 0x96, 0x66, 0x69, 0x75, 0xa3, 0x65, 0x38, 0x46, + 0x1c, 0xf3, 0xf7, 0x0a, 0x5c, 0x8f, 0x8b, 0x47, 0xfe, 0x7d, 0xb8, 0x84, 0xfc, 0xb8, 0xc7, 0x35, + 0x3d, 0xb2, 0x0c, 0xbd, 0x94, 0x13, 0x79, 0xe9, 0x4f, 0xd3, 0xad, 0xce, 0x59, 0x27, 0xe5, 0xa7, + 0x37, 0x21, 0x23, 0x09, 0x3f, 0xc3, 0x82, 0x32, 0xda, 0x50, 0x13, 0xbf, 0x4a, 0xe1, 0x6a, 0xc4, + 0x7f, 0x04, 0xe7, 0xfc, 0x92, 0x84, 0xac, 0x37, 0x23, 0xac, 0x5e, 0x01, 0x2b, 0x04, 0x45, 0x6b, + 0xbf, 0x58, 0xd8, 0x6c, 0x34, 0x6c, 0x26, 0x04, 0x0a, 0xe1, 0x27, 0x3d, 0xd0, 0xa0, 0x3b, 0x58, + 0x30, 0x70, 0x3e, 0xf6, 0x4e, 0x6b, 0x9e, 0x9c, 0x7f, 0xa7, 0x71, 0x48, 0xbf, 0xea, 0x75, 0x17, + 0xe0, 0x36, 0x60, 0x12, 0x53, 0xe1, 0x55, 0x9e, 0x2b, 0x78, 0xa5, 0xb9, 0xe0, 0x96, 0xe6, 0x60, + 0x3f, 0xb7, 0xb8, 0x61, 0x56, 0x54, 0x17, 0xed, 0xaf, 0xd7, 0x57, 0x17, 0x9a, 0x86, 0xb3, 0xd7, + 0xa9, 0xbb, 0x66, 0x54, 0xac, 0xe3, 0xde, 0x9f, 0x15, 0xd1, 0x78, 0xa6, 0x3a, 0x5d, 0x8b, 0x09, + 0x19, 0x50, 0xf5, 0xa5, 0xe9, 0x1c, 0xbe, 0x9c, 0xbb, 0xbc, 0xd1, 0x69, 0x31, 0xf7, 0x52, 0xf9, + 0x5f, 0x4c, 0xfa, 0x39, 0xbe, 0x6c, 0x3d, 0x53, 0x08, 0xb7, 0x09, 0xe3, 0xee, 0x1d, 0xf6, 0xbf, + 0xd6, 0x71, 0x17, 0xf8, 0x7d, 0xaf, 0x60, 0x7b, 0x1a, 0x5e, 0x64, 0xe9, 0xe5, 0x45, 0x18, 0x97, + 0xfa, 0xe4, 0x3b, 0x05, 0x26, 0xbc, 0xb2, 0x49, 0x8a, 0x31, 0x42, 0x83, 0x75, 0x3b, 0x57, 0x4a, + 0x13, 0xe2, 0xe1, 0xd3, 0x95, 0xaf, 0xff, 0xf8, 0xe7, 0xdb, 0x33, 0x0b, 0x64, 0x5e, 0x4d, 0xd2, + 0x94, 0x90, 0x97, 0x0a, 0x5c, 0xe8, 0xab, 0xcd, 0xe4, 0x4e, 0x92, 0xb4, 0xc3, 0xeb, 0x7d, 0xee, + 0xdd, 0x53, 0xc5, 0x22, 0xfb, 0xba, 0x64, 0x2f, 0x12, 0x35, 0x86, 0x3d, 0x28, 0x8b, 0x35, 0xaf, + 0x5b, 0x20, 0x3f, 0x29, 0x00, 0x61, 0x3f, 0x40, 0x6e, 0xa7, 0x82, 0x08, 0xd8, 0xcb, 0x69, 0xc3, + 0x10, 0xbb, 0x28, 0xb1, 0x97, 0xc9, 0x52, 0x52, 0x6c, 0x41, 0x7e, 0x56, 0x60, 0x2a, 0x50, 0x22, + 0x6b, 0xa9, 0x12, 0xfb, 0xb8, 0xb7, 0x53, 0x46, 0x21, 0xed, 0x86, 0xa4, 0x2d, 0x91, 0x5b, 0x49, + 0x69, 0xd5, 0x17, 0x72, 0x97, 0x0f, 0xc8, 0xa1, 0x02, 0x33, 0xd1, 0xe2, 0x4d, 0xd6, 0x93, 0x10, + 0x0c, 0x69, 0x1b, 0x72, 0x1b, 0xe9, 0x03, 0x91, 0x7e, 0x47, 0xd2, 0xbf, 0x47, 0xee, 0xc5, 0xd0, + 0xcb, 0xfe, 0xa1, 0x56, 0xef, 0xd6, 0x64, 0xef, 0xe1, 0x5b, 0x50, 0x5f, 0xc8, 0xe1, 0x01, 0xf9, + 0x5d, 0x81, 0x99, 0x68, 0x13, 0x94, 0xcc, 0xca, 0x90, 0xe6, 0x2b, 0x99, 0x95, 0x61, 0xfd, 0x16, + 0xdd, 0x96, 0x56, 0xee, 0x93, 0xbb, 0x31, 0x56, 0xbc, 0x36, 0xcc, 0xf5, 0xe2, 0x9a, 0x0a, 0xad, + 0xb8, 0xa3, 0x03, 0xf2, 0x2b, 0x1e, 0x8a, 0xdf, 0x93, 0x24, 0x3f, 0x94, 0xbe, 0x86, 0x2a, 0xf9, + 0xa1, 0xf4, 0xf7, 0x55, 0xf4, 0xae, 0x74, 0x52, 0x26, 0x6b, 0x09, 0x0e, 0x25, 0x68, 0xbe, 0x82, + 0x6b, 0xf5, 0x9b, 0x02, 0xd3, 0x11, 0x59, 0x52, 0x4e, 0xc9, 0xe1, 0xf3, 0xaf, 0xa7, 0x8e, 0x3b, + 0xc5, 0x9d, 0xf2, 0xf1, 0xc3, 0x63, 0xc0, 0x07, 0xf2, 0x4e, 0x9d, 0xef, 0x6d, 0x8f, 0xc8, 0x3b, + 0x89, 0x3e, 0xe0, 0xc3, 0xda, 0xb0, 0xdc, 0x9d, 0xd3, 0x84, 0xa2, 0xa1, 0xfb, 0xd2, 0xd0, 0x06, + 0x29, 0xc7, 0xd5, 0x80, 0xde, 0x96, 0x2d, 0x38, 0x91, 0x7f, 0x15, 0x98, 0x3b, 0xb1, 0x67, 0x22, + 0xdb, 0xc9, 0xc9, 0x4e, 0x6e, 0xd9, 0x72, 0x3b, 0xff, 0x53, 0x05, 0xad, 0x7e, 0x28, 0xad, 0x6e, + 0x93, 0x4a, 0x32, 0xab, 0xc3, 0xba, 0xbb, 0xc0, 0xf6, 0x8f, 0x0a, 0x9c, 0xf3, 0x5b, 0x2b, 0xb2, + 0x9a, 0x84, 0xaf, 0xaf, 0x6d, 0xcb, 0xad, 0xa5, 0x0b, 0x42, 0x0f, 0xaa, 0xf4, 0xb0, 0x44, 0x16, + 0x62, 0x3c, 0xf8, 0xed, 0x19, 0xf9, 0x41, 0x81, 0x49, 0x54, 0x21, 0xa5, 0x14, 0x29, 0x7d, 0xcc, + 0xd5, 0x54, 0x31, 0x48, 0x59, 0x90, 0x94, 0x8b, 0xe4, 0x7a, 0x32, 0x4a, 0xf2, 0x8b, 0x02, 0xb3, + 0x8f, 0xc3, 0xf9, 0x48, 0xab, 0x95, 0xec, 0x0d, 0x1f, 0x6c, 0xdb, 0x92, 0xbd, 0xe1, 0x43, 0x7a, + 0x3a, 0xba, 0x2a, 0xd9, 0x57, 0xc8, 0x72, 0x0c, 0x7b, 0x5b, 0xc6, 0xca, 0x17, 0x82, 0x55, 0x9e, + 0x1d, 0x1e, 0xe5, 0x95, 0x57, 0x47, 0x79, 0xe5, 0xef, 0xa3, 0xbc, 0xf2, 0xcd, 0x71, 0x7e, 0xec, + 0xd5, 0x71, 0x7e, 0xec, 0xcf, 0xe3, 0xfc, 0xd8, 0xd3, 0x27, 0x91, 0x5e, 0xf4, 0xa1, 0x2f, 0xf8, + 0x91, 0x56, 0x17, 0xa1, 0xfc, 0x8a, 0xce, 0x6d, 0x16, 0x1d, 0xee, 0x69, 0x86, 0x89, 0xfa, 0xa2, + 0x27, 0xb7, 0x6c, 0x5d, 0xeb, 0x13, 0xf2, 0xff, 0x37, 0xab, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, + 0xea, 0x36, 0x1f, 0x09, 0x42, 0x13, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4921,7 +4923,7 @@ func (m *QueryVouchersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Vouchers = append(m.Vouchers, &AddressVoucher{}) + m.Vouchers = append(m.Vouchers, types.AddressVoucher{}) if err := m.Vouchers[len(m.Vouchers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/chain/txfees/types/tx.pb.go b/chain/txfees/types/tx.pb.go index 4dd614b8..719195dc 100644 --- a/chain/txfees/types/tx.pb.go +++ b/chain/txfees/types/tx.pb.go @@ -12,6 +12,7 @@ import ( _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" + golang_proto "github.com/golang/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -22,6 +23,7 @@ import ( // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal +var _ = golang_proto.Marshal var _ = fmt.Errorf var _ = math.Inf @@ -125,13 +127,18 @@ var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo func init() { proto.RegisterType((*MsgUpdateParams)(nil), "injective.txfees.v1beta1.MsgUpdateParams") + golang_proto.RegisterType((*MsgUpdateParams)(nil), "injective.txfees.v1beta1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.txfees.v1beta1.MsgUpdateParamsResponse") + golang_proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.txfees.v1beta1.MsgUpdateParamsResponse") } func init() { proto.RegisterFile("injective/txfees/v1beta1/tx.proto", fileDescriptor_b294b9f8d0e0a6fb) } +func init() { + golang_proto.RegisterFile("injective/txfees/v1beta1/tx.proto", fileDescriptor_b294b9f8d0e0a6fb) +} var fileDescriptor_b294b9f8d0e0a6fb = []byte{ - // 370 bytes of a gzipped FileDescriptorProto + // 374 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xcc, 0xcc, 0xcb, 0x4a, 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0xa9, 0x48, 0x4b, 0x4d, 0x2d, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x2f, 0xa9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x80, @@ -149,13 +156,13 @@ var fileDescriptor_b294b9f8d0e0a6fb = []byte{ 0x07, 0xcd, 0x89, 0x4a, 0x92, 0x5c, 0xe2, 0x68, 0x42, 0x41, 0xa9, 0xc5, 0x05, 0xf9, 0x79, 0xc5, 0xa9, 0x46, 0x55, 0x5c, 0xcc, 0xbe, 0xc5, 0xe9, 0x42, 0x39, 0x5c, 0x3c, 0x28, 0x9e, 0xd2, 0xc4, 0xed, 0x18, 0x34, 0x93, 0xa4, 0x0c, 0x89, 0x56, 0x0a, 0xb3, 0x54, 0x8a, 0xb5, 0xe1, 0xf9, 0x06, - 0x2d, 0x46, 0xa7, 0xb4, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, - 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x88, 0xf2, 0x49, - 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0xf7, 0x84, 0x99, 0xee, 0x93, 0x98, - 0x54, 0xac, 0x0f, 0xb7, 0x4b, 0x37, 0x39, 0xbf, 0x28, 0x15, 0x99, 0x9b, 0x91, 0x98, 0x99, 0xa7, - 0x9f, 0x9b, 0x9f, 0x52, 0x9a, 0x93, 0x5a, 0x0c, 0x8b, 0xd7, 0x92, 0xca, 0x82, 0xd4, 0xe2, 0x24, - 0x36, 0x70, 0xe4, 0x19, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x88, 0xec, 0x61, 0xb3, 0x7f, 0x02, - 0x00, 0x00, + 0x2d, 0x46, 0xa7, 0xac, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, + 0x71, 0xc2, 0x63, 0x39, 0x86, 0x03, 0x8f, 0xe5, 0x18, 0x2f, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, + 0x8e, 0x21, 0xca, 0x27, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x57, 0xdf, 0x13, + 0x66, 0x83, 0x4f, 0x62, 0x52, 0xb1, 0x3e, 0xdc, 0x3e, 0xdd, 0xe4, 0xfc, 0xa2, 0x54, 0x64, 0x6e, + 0x46, 0x62, 0x66, 0x9e, 0x7e, 0x6e, 0x7e, 0x4a, 0x69, 0x4e, 0x6a, 0x31, 0x2c, 0x6e, 0x4b, 0x2a, + 0x0b, 0x52, 0x8b, 0x93, 0xd8, 0xc0, 0x11, 0x68, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xd7, 0xb2, + 0x0b, 0xe1, 0x83, 0x02, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/chain/txfees/types/txfees.pb.go b/chain/txfees/types/txfees.pb.go index ea44318b..0772bd4d 100644 --- a/chain/txfees/types/txfees.pb.go +++ b/chain/txfees/types/txfees.pb.go @@ -6,6 +6,7 @@ package types import ( cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" @@ -118,57 +119,58 @@ func init() { } var fileDescriptor_43abc7238d07d36b = []byte{ - // 791 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xcf, 0x6b, 0xe3, 0x46, - 0x14, 0xc7, 0xad, 0x26, 0x4d, 0x13, 0x25, 0x2e, 0x44, 0xb5, 0x1b, 0xe5, 0x47, 0x25, 0x23, 0xd2, - 0xe2, 0x16, 0x6a, 0x35, 0x94, 0x1c, 0x9a, 0x5e, 0x8a, 0xd3, 0xd8, 0x0d, 0x75, 0xa8, 0x51, 0x02, - 0x81, 0x5e, 0xc4, 0x58, 0x7e, 0x96, 0x94, 0x48, 0x1a, 0xa1, 0x19, 0x3b, 0x0a, 0x94, 0x42, 0x6f, - 0x65, 0xf7, 0xb2, 0xb0, 0xa7, 0xbd, 0xed, 0x9f, 0x90, 0x3f, 0x61, 0x8f, 0x39, 0xe6, 0xb8, 0xec, - 0xc1, 0x2c, 0xf1, 0x61, 0xf7, 0xec, 0xbf, 0x60, 0xd1, 0x48, 0x96, 0x95, 0xb5, 0xc9, 0xea, 0x62, - 0x34, 0xdf, 0xf7, 0xe6, 0x3b, 0x9f, 0xf1, 0xcc, 0x9b, 0xc7, 0x7f, 0x6b, 0x7b, 0x17, 0x60, 0x50, - 0x7b, 0x00, 0x2a, 0x0d, 0x7b, 0x00, 0x44, 0x1d, 0xec, 0x75, 0x80, 0xa2, 0xbd, 0x64, 0x58, 0xf3, - 0x03, 0x4c, 0xb1, 0x20, 0xa6, 0x69, 0xb5, 0x44, 0x4f, 0xd2, 0xb6, 0xd6, 0x91, 0x6b, 0x7b, 0x58, - 0x65, 0xbf, 0x71, 0xf2, 0x56, 0xc9, 0xc4, 0x26, 0x66, 0x9f, 0x6a, 0xf4, 0x95, 0xa8, 0x3b, 0x26, - 0xc6, 0xa6, 0x03, 0x2a, 0xf2, 0x6d, 0x15, 0x79, 0x1e, 0xa6, 0x88, 0xda, 0xd8, 0x4b, 0x16, 0x50, - 0x5e, 0xac, 0xf1, 0x4b, 0x6d, 0x14, 0x20, 0x97, 0x08, 0x1a, 0x5f, 0x76, 0x51, 0xa8, 0x9b, 0x88, - 0xe8, 0x57, 0xc8, 0xa3, 0xd0, 0xd5, 0x7d, 0x08, 0x74, 0x1a, 0x8a, 0x5c, 0x85, 0xab, 0x2e, 0xd6, - 0x2b, 0xe3, 0xa1, 0xbc, 0x73, 0x8d, 0x5c, 0xe7, 0x40, 0x99, 0x9b, 0xa6, 0x68, 0xeb, 0x2e, 0x0a, - 0x9b, 0x88, 0x9c, 0x33, 0xb5, 0x0d, 0xc1, 0x59, 0x28, 0x9c, 0xf2, 0x65, 0xcb, 0x36, 0x2d, 0x96, - 0x4d, 0x43, 0x9d, 0x5a, 0x01, 0x10, 0x0b, 0x3b, 0x5d, 0xf1, 0xb3, 0x8f, 0x3d, 0xe7, 0xa6, 0x29, - 0x9a, 0x10, 0xe9, 0x4d, 0x44, 0xce, 0xc2, 0xb3, 0x89, 0x28, 0x3c, 0xe5, 0xf8, 0x6f, 0x5c, 0xdb, - 0x63, 0xd9, 0x7e, 0x60, 0x1b, 0xa0, 0xf7, 0x70, 0xa0, 0x67, 0x0c, 0xc4, 0x85, 0x0a, 0x57, 0x5d, - 0xa9, 0xff, 0x79, 0x3b, 0x94, 0x0b, 0x6f, 0x86, 0xf2, 0xb6, 0x81, 0x89, 0x8b, 0x09, 0xe9, 0x5e, - 0xd6, 0x6c, 0xac, 0xba, 0x88, 0x5a, 0xb5, 0x16, 0x98, 0xc8, 0xb8, 0xfe, 0x1d, 0x8c, 0xf1, 0x50, - 0xde, 0x4d, 0x36, 0xf5, 0x98, 0xa3, 0xa2, 0x6d, 0xb8, 0xb6, 0xd7, 0x44, 0xa4, 0x1d, 0x45, 0x1b, - 0x38, 0xf8, 0x63, 0x82, 0x25, 0xfc, 0xc5, 0x7f, 0xe5, 0x82, 0xeb, 0x63, 0xec, 0xec, 0xed, 0xef, - 0xff, 0xa2, 0x83, 0x87, 0x3a, 0x0e, 0x74, 0xc5, 0xc5, 0x0a, 0x57, 0x5d, 0xae, 0x4b, 0xe3, 0xa1, - 0xbc, 0x95, 0xf8, 0xcf, 0x26, 0x29, 0x9a, 0x90, 0x51, 0x8f, 0x62, 0x51, 0xd0, 0xf9, 0xe2, 0x03, - 0x16, 0xf1, 0x73, 0xb6, 0x9b, 0x5f, 0xf3, 0xed, 0xa6, 0x34, 0x67, 0x37, 0x8a, 0xb6, 0x9a, 0xa1, - 0x17, 0xfe, 0xe7, 0xf8, 0xed, 0x2e, 0xf4, 0x50, 0xdf, 0xa1, 0x7a, 0x07, 0x11, 0xd0, 0x7b, 0x00, - 0xba, 0xdb, 0x77, 0xa8, 0xed, 0x3b, 0x36, 0x04, 0xe2, 0x12, 0x5b, 0xef, 0x38, 0xdf, 0x7a, 0x4a, - 0xbc, 0xde, 0x23, 0x7e, 0x8a, 0x26, 0x26, 0xd1, 0x3a, 0x22, 0xd0, 0x00, 0x38, 0x49, 0x43, 0xc2, - 0x3f, 0xfc, 0x46, 0x74, 0x99, 0xe6, 0x51, 0x7c, 0xc1, 0x28, 0x8e, 0xf2, 0x51, 0x48, 0xd3, 0x8b, - 0x39, 0x97, 0xa0, 0xe4, 0xa2, 0x70, 0x76, 0xf5, 0xdf, 0xf8, 0x2f, 0x03, 0x20, 0x40, 0x75, 0xdb, - 0xa3, 0x10, 0x0c, 0x90, 0x23, 0x2e, 0x57, 0xb8, 0xea, 0x42, 0x7d, 0x73, 0x3c, 0x94, 0xcb, 0xb1, - 0xe3, 0xc3, 0xb8, 0xa2, 0x15, 0x99, 0x70, 0x9c, 0x8c, 0x85, 0x41, 0x5c, 0x33, 0x1d, 0x07, 0x1b, - 0x97, 0xba, 0x61, 0x21, 0xcf, 0x04, 0x3d, 0x40, 0x14, 0xc4, 0x15, 0x46, 0x7f, 0x98, 0x8f, 0x3e, - 0x53, 0x56, 0x33, 0x4e, 0xd1, 0x1d, 0x41, 0x61, 0x3d, 0x92, 0x0f, 0x99, 0xaa, 0x21, 0x0a, 0xc2, - 0x73, 0x8e, 0x97, 0x29, 0x0a, 0x4c, 0xa0, 0xc9, 0x0c, 0xe2, 0x23, 0x03, 0xa2, 0x4a, 0x34, 0xc0, - 0xa3, 0x31, 0x02, 0xcf, 0x10, 0x4e, 0xf2, 0x21, 0x7c, 0x17, 0x23, 0x7c, 0xc2, 0x53, 0xd1, 0xb6, - 0xe3, 0x0c, 0xc6, 0x73, 0x1a, 0xc5, 0xdb, 0x71, 0x98, 0x51, 0xfd, 0xcb, 0x8b, 0x01, 0x18, 0x16, - 0x18, 0x97, 0xec, 0x00, 0x1c, 0x7c, 0x95, 0x9e, 0x86, 0xb8, 0xca, 0x68, 0x1a, 0xf9, 0x68, 0xe4, - 0xc9, 0x9f, 0x3f, 0xdf, 0x4c, 0xd1, 0x4a, 0x49, 0xa8, 0x01, 0xd0, 0xc2, 0x57, 0xc9, 0xc9, 0x0a, - 0xff, 0x71, 0xfc, 0x66, 0x76, 0x0e, 0x2b, 0xe0, 0x94, 0x60, 0x8d, 0x11, 0x34, 0xf3, 0x11, 0x54, - 0x66, 0x09, 0x1e, 0xb8, 0x29, 0x5a, 0x79, 0x8a, 0x10, 0x3d, 0x06, 0x13, 0x86, 0x1b, 0x8e, 0xff, - 0x3e, 0x3b, 0x2b, 0xbd, 0x8e, 0xe9, 0xa3, 0x96, 0xbd, 0xe4, 0x45, 0xc6, 0x74, 0x9e, 0x8f, 0xe9, - 0xa7, 0x59, 0xa6, 0x47, 0xdd, 0x15, 0x6d, 0x77, 0xca, 0x98, 0xf0, 0xa5, 0xaf, 0xe8, 0xb4, 0x0c, - 0x0e, 0xbe, 0x7e, 0xff, 0x52, 0xe6, 0x9e, 0xbc, 0xbb, 0xf9, 0xa1, 0x98, 0xb4, 0xa2, 0xb8, 0x21, - 0xd4, 0x2f, 0x6e, 0xef, 0x25, 0xee, 0xee, 0x5e, 0xe2, 0xde, 0xde, 0x4b, 0xdc, 0xb3, 0x91, 0x54, - 0x78, 0x35, 0x92, 0xb8, 0xbb, 0x91, 0x54, 0x78, 0x3d, 0x92, 0x0a, 0x7f, 0xb7, 0x4c, 0x9b, 0x5a, - 0xfd, 0x4e, 0xcd, 0xc0, 0xae, 0x7a, 0x3c, 0xe9, 0x52, 0x2d, 0xd4, 0x21, 0x6a, 0xda, 0xb3, 0x7e, - 0x34, 0x70, 0x00, 0xd9, 0xa1, 0x85, 0x6c, 0x4f, 0x75, 0x71, 0xb7, 0xef, 0x00, 0x99, 0xf4, 0x3d, - 0x7a, 0xed, 0x03, 0xe9, 0x2c, 0xb1, 0x76, 0xf4, 0xf3, 0x87, 0x00, 0x00, 0x00, 0xff, 0xff, 0x37, - 0x32, 0xb4, 0xd8, 0x18, 0x07, 0x00, 0x00, + // 814 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0x4f, 0x6f, 0xe3, 0x44, + 0x18, 0xc6, 0x33, 0xec, 0x52, 0x76, 0x67, 0x09, 0xd2, 0x9a, 0x86, 0x75, 0xd3, 0xc5, 0x8e, 0xac, + 0x05, 0x05, 0xa4, 0x8d, 0xa9, 0xd0, 0x1e, 0xd8, 0x13, 0x0a, 0xa5, 0xa5, 0x52, 0x10, 0x21, 0x0d, + 0xaa, 0x80, 0x83, 0x35, 0x71, 0xde, 0xd8, 0x6e, 0x3d, 0x1e, 0xcb, 0x33, 0x69, 0xdd, 0x3b, 0xa7, + 0x0a, 0x09, 0x4e, 0x48, 0x70, 0x82, 0x6f, 0xc0, 0x81, 0x33, 0xe2, 0xd8, 0x63, 0xc5, 0x09, 0x71, + 0x88, 0x50, 0x73, 0x80, 0x73, 0x3e, 0x01, 0xf2, 0xd8, 0x71, 0xdc, 0x24, 0xea, 0xfa, 0x12, 0x79, + 0x5e, 0x3f, 0x7e, 0xe6, 0xf7, 0x64, 0xfe, 0xbc, 0xf8, 0x2d, 0x2f, 0x38, 0x06, 0x5b, 0x78, 0xa7, + 0x60, 0x8a, 0x78, 0x04, 0xc0, 0xcd, 0xd3, 0x9d, 0x01, 0x08, 0xb2, 0x93, 0x0d, 0x5b, 0x61, 0xc4, + 0x04, 0x53, 0xd4, 0x5c, 0xd6, 0xca, 0xea, 0x99, 0xac, 0xfe, 0x90, 0x50, 0x2f, 0x60, 0xa6, 0xfc, + 0x4d, 0xc5, 0xf5, 0x4d, 0x87, 0x39, 0x4c, 0x3e, 0x9a, 0xc9, 0x53, 0x56, 0x7d, 0xec, 0x30, 0xe6, + 0xf8, 0x60, 0x92, 0xd0, 0x33, 0x49, 0x10, 0x30, 0x41, 0x84, 0xc7, 0x82, 0x6c, 0x82, 0xfa, 0x96, + 0xcd, 0x38, 0x65, 0xdc, 0x4a, 0x3f, 0x4b, 0x07, 0xe9, 0x2b, 0xe3, 0xa7, 0x2a, 0xde, 0xe8, 0x92, + 0x88, 0x50, 0xae, 0xf4, 0x70, 0x8d, 0x92, 0xd8, 0x72, 0x08, 0xb7, 0xce, 0x48, 0x20, 0x60, 0x68, + 0x85, 0x10, 0x59, 0x22, 0x56, 0x51, 0x03, 0x35, 0xef, 0xb6, 0x1b, 0xb3, 0x89, 0xfe, 0xf8, 0x9c, + 0x50, 0xff, 0xb9, 0xb1, 0x56, 0x66, 0xf4, 0x1e, 0x52, 0x12, 0xef, 0x13, 0x7e, 0x24, 0xab, 0x5d, + 0x88, 0xfa, 0xb1, 0x72, 0x88, 0x6b, 0xae, 0xe7, 0xb8, 0x52, 0x2d, 0x62, 0x4b, 0xb8, 0x11, 0x70, + 0x97, 0xf9, 0x43, 0xf5, 0xa5, 0x65, 0xcf, 0xb5, 0x32, 0xa3, 0xa7, 0x24, 0xf5, 0x7d, 0xc2, 0xfb, + 0x71, 0x7f, 0x5e, 0x54, 0x7e, 0x44, 0xf8, 0x4d, 0xea, 0x05, 0x52, 0x1d, 0x46, 0x9e, 0x0d, 0xd6, + 0x88, 0x45, 0x56, 0xc1, 0x40, 0xbd, 0xd3, 0x40, 0xcd, 0xfb, 0xed, 0x2f, 0x2f, 0x27, 0x7a, 0xe5, + 0xef, 0x89, 0xbe, 0x9d, 0x26, 0xe6, 0xc3, 0x93, 0x96, 0xc7, 0x4c, 0x4a, 0x84, 0xdb, 0xea, 0x80, + 0x43, 0xec, 0xf3, 0x5d, 0xb0, 0x67, 0x13, 0xfd, 0x49, 0x16, 0xea, 0x36, 0x47, 0xe3, 0xcf, 0xdf, + 0x9e, 0xe2, 0xec, 0x8f, 0xdb, 0x05, 0xbb, 0xf7, 0x88, 0x7a, 0xc1, 0x3e, 0xe1, 0xdd, 0x44, 0xbb, + 0xc7, 0xa2, 0x4f, 0xe6, 0x90, 0xca, 0x67, 0xf8, 0x75, 0x0a, 0x34, 0x64, 0xcc, 0xdf, 0x79, 0xf6, + 0xec, 0x03, 0x0b, 0x02, 0x32, 0xf0, 0x61, 0xa8, 0xde, 0x6d, 0xa0, 0xe6, 0xbd, 0xb6, 0x36, 0x9b, + 0xe8, 0xf5, 0x6c, 0xb6, 0x55, 0x91, 0xd1, 0x53, 0x0a, 0xd5, 0x8f, 0xd3, 0xa2, 0x42, 0x71, 0xf5, + 0x06, 0x99, 0xfa, 0xb2, 0xcc, 0x76, 0x50, 0x2e, 0xdb, 0xe6, 0x9a, 0x6c, 0xcb, 0x59, 0x1e, 0x14, + 0xb2, 0x28, 0x3f, 0x20, 0xbc, 0x3d, 0x84, 0x11, 0x19, 0xfb, 0xc2, 0x1a, 0x10, 0x0e, 0xd6, 0x08, + 0xc0, 0xa2, 0x63, 0x5f, 0x78, 0xa1, 0xef, 0x41, 0xa4, 0x6e, 0xc8, 0xd9, 0x8f, 0xca, 0xcd, 0x6e, + 0xa4, 0xb3, 0xdf, 0xe2, 0xb7, 0xcc, 0xa2, 0x66, 0xda, 0x36, 0xe1, 0xb0, 0x07, 0xf0, 0x69, 0x2e, + 0x54, 0x2e, 0x10, 0x7e, 0x94, 0xec, 0xbb, 0x75, 0x50, 0xaf, 0x48, 0xa8, 0xc3, 0x72, 0x50, 0xda, + 0x62, 0x0f, 0x97, 0x00, 0xda, 0xa4, 0x24, 0x5e, 0x85, 0xf9, 0x10, 0xbf, 0x16, 0x01, 0x07, 0x61, + 0x79, 0x81, 0x80, 0xe8, 0x94, 0xf8, 0xea, 0xbd, 0x06, 0x6a, 0xde, 0x69, 0x6f, 0xcd, 0x26, 0x7a, + 0x2d, 0xf5, 0xbf, 0xf9, 0xde, 0xe8, 0x55, 0x65, 0xe1, 0x20, 0x1b, 0x2b, 0xdf, 0xa0, 0xf4, 0xb4, + 0x0d, 0x7c, 0x66, 0x9f, 0x58, 0xb6, 0x4b, 0x02, 0x07, 0xac, 0x88, 0x08, 0x50, 0xef, 0xcb, 0x30, + 0x9f, 0x97, 0x0b, 0x53, 0x38, 0x90, 0x2b, 0x4e, 0xcb, 0x51, 0x94, 0x24, 0x4a, 0x22, 0xfa, 0x48, + 0x6a, 0x7a, 0x44, 0x80, 0xf2, 0x0b, 0xc2, 0xba, 0x20, 0x91, 0x03, 0x22, 0xfb, 0x9e, 0x87, 0xc4, + 0x86, 0xe4, 0x44, 0xdb, 0x10, 0x88, 0x14, 0x08, 0x4b, 0xa0, 0xaf, 0xcb, 0x01, 0xbd, 0x9d, 0x02, + 0xbd, 0xc0, 0x73, 0x19, 0x6d, 0x3b, 0xd5, 0x4b, 0xba, 0xc3, 0x44, 0xdd, 0x4d, 0xc5, 0x92, 0xf1, + 0x5b, 0x84, 0xd5, 0x08, 0x6c, 0x17, 0xec, 0x13, 0xb9, 0x58, 0x3e, 0x3b, 0xcb, 0x57, 0x4e, 0x7d, + 0x20, 0xe1, 0xfa, 0xe5, 0xe0, 0xf4, 0xf9, 0xd2, 0xac, 0x37, 0x5b, 0x59, 0xfb, 0x4c, 0xb8, 0x07, + 0xd0, 0x61, 0x67, 0xd9, 0x2e, 0x50, 0xbe, 0x43, 0x78, 0xab, 0xe8, 0x20, 0x6f, 0x89, 0x9c, 0xe7, + 0x55, 0xc9, 0xf3, 0x45, 0x39, 0x9e, 0xc6, 0x2a, 0xcf, 0x0d, 0xb7, 0x65, 0xa0, 0xda, 0x02, 0x28, + 0xb9, 0x71, 0xe6, 0x44, 0xbf, 0x23, 0xfc, 0x4e, 0xd1, 0x23, 0xdf, 0xd6, 0xf9, 0x3d, 0x5a, 0x3c, + 0x2c, 0x55, 0x49, 0x08, 0xe5, 0x08, 0xdf, 0x5b, 0x25, 0xbc, 0xd5, 0x7d, 0x99, 0xf8, 0xc9, 0x82, + 0x38, 0xa3, 0xcd, 0xaf, 0xf1, 0xc5, 0x71, 0x7a, 0xfe, 0xc6, 0x7f, 0x3f, 0xeb, 0xe8, 0xe2, 0xdf, + 0x5f, 0xdf, 0xad, 0x66, 0x6d, 0x32, 0xed, 0x48, 0xed, 0xe3, 0xcb, 0x6b, 0x0d, 0x5d, 0x5d, 0x6b, + 0xe8, 0x9f, 0x6b, 0x0d, 0x7d, 0x3f, 0xd5, 0x2a, 0x7f, 0x4c, 0x35, 0x74, 0x35, 0xd5, 0x2a, 0x7f, + 0x4d, 0xb5, 0xca, 0x57, 0x1d, 0xc7, 0x13, 0xee, 0x78, 0xd0, 0xb2, 0x19, 0x35, 0x0f, 0xe6, 0x1d, + 0xb4, 0x43, 0x06, 0xdc, 0xcc, 0xfb, 0xe9, 0x53, 0x9b, 0x45, 0x50, 0x1c, 0xba, 0xc4, 0x0b, 0x4c, + 0xca, 0x86, 0x63, 0x1f, 0xf8, 0xbc, 0x27, 0x8b, 0xf3, 0x10, 0xf8, 0x60, 0x43, 0xf6, 0xc3, 0xf7, + 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x73, 0x2d, 0x73, 0x60, 0xb4, 0x07, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/chain/types/config.go b/chain/types/config.go index 38eb2515..62531e68 100644 --- a/chain/types/config.go +++ b/chain/types/config.go @@ -1,6 +1,8 @@ package types import ( + "sync" + sdk "github.com/cosmos/cosmos-sdk/types" ethaccounts "github.com/ethereum/go-ethereum/accounts" ) @@ -29,8 +31,23 @@ const ( var ( // BIP44HDPath is the BIP44 HD path used on Ethereum. BIP44HDPath = ethaccounts.DefaultBaseDerivationPath.String() + + initSDKConfigOnce sync.Once ) +// InitSDKConfig applies Injective-specific settings to the global Cosmos SDK +// config exactly once. It is safe to call from package init code. +func InitSDKConfig() *sdk.Config { + config := sdk.GetConfig() + + initSDKConfigOnce.Do(func() { + SetBech32Prefixes(config) + SetBip44CoinType(config) + }) + + return config +} + // SetBech32Prefixes sets the global prefixes to be used when serializing addresses and public keys to Bech32 strings. func SetBech32Prefixes(config *sdk.Config) { config.SetBech32PrefixForAccount(Bech32PrefixAccAddr, Bech32PrefixAccPub) diff --git a/chain/types/util.go b/chain/types/util.go index 6cb58634..18c19815 100644 --- a/chain/types/util.go +++ b/chain/types/util.go @@ -1,6 +1,7 @@ package types import ( + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -25,3 +26,31 @@ func HasDuplicateCoins(slice []sdk.Coin) bool { } return false } + +// IterCb is a callback for IterateSafe that receives key and value bytes. +// Return true to stop iteration. +type IterCb func(k, v []byte) (stop bool) + +// IterateSafe ensures the Iterator is closed even if the work done inside the callback panics. +func IterateSafe(iter storetypes.Iterator, callback IterCb) { + defer iter.Close() + for ; iter.Valid(); iter.Next() { + if callback(iter.Key(), iter.Value()) { + return + } + } +} + +// IterKeyCb is a callback for IterateKeysSafe that receives only the key bytes. +// Return true to stop iteration. +type IterKeyCb func(k []byte) (stop bool) + +// IterateKeysSafe only iterates over keys and ensures the Iterator is closed even if the callback panics. +func IterateKeysSafe(iter storetypes.Iterator, callback IterKeyCb) { + defer iter.Close() + for ; iter.Valid(); iter.Next() { + if callback(iter.Key()) { + return + } + } +} diff --git a/chain/wasmx/types/params.go b/chain/wasmx/types/params.go index 618a79bc..6df7caaa 100644 --- a/chain/wasmx/types/params.go +++ b/chain/wasmx/types/params.go @@ -11,10 +11,12 @@ import ( var _ paramtypes.ParamSet = &Params{} const ( - GasForFeeDeduction uint64 = 13419 - GasForFeeRefund uint64 = 13419 - DefaultGasContractCall uint64 = 63558 - MinExecutionGasLimit = GasForFeeDeduction + GasForFeeRefund + DefaultGasContractCall + GasForFeeDeduction uint64 = 13419 + GasForFeeRefund uint64 = 13419 + DefaultGasContractCall uint64 = 63558 + ExecutionGasFeeMultiplier uint64 = 3 + MinExecutionGasLimit uint64 = GasForFeeDeduction + GasForFeeRefund + DefaultGasContractCall + MaxSafeExecutionGasLimit uint64 = ^uint64(0) / ExecutionGasFeeMultiplier ) // Wasmx params default values @@ -124,6 +126,10 @@ func validateMaxContractGasLimit(i interface{}) error { if v < MinExecutionGasLimit { return fmt.Errorf("MaxContractGasLimit %d must be greater than the MinExecutionGasLimit: %d", v, MinExecutionGasLimit) } + + if v > MaxSafeExecutionGasLimit { + return fmt.Errorf("MaxContractGasLimit %d must not exceed %d to avoid gas fee overflow", v, MaxSafeExecutionGasLimit) + } return nil } diff --git a/chain/wasmx/types/tx.pb.go b/chain/wasmx/types/tx.pb.go index fbf519a8..15d1aa9f 100644 --- a/chain/wasmx/types/tx.pb.go +++ b/chain/wasmx/types/tx.pb.go @@ -13,6 +13,7 @@ import ( _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" + golang_proto "github.com/golang/protobuf/proto" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -23,6 +24,7 @@ import ( // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal +var _ = golang_proto.Marshal var _ = fmt.Errorf var _ = math.Inf @@ -628,74 +630,89 @@ var xxx_messageInfo_MsgRegisterContractResponse proto.InternalMessageInfo func init() { proto.RegisterType((*MsgExecuteContractCompat)(nil), "injective.wasmx.v1.MsgExecuteContractCompat") + golang_proto.RegisterType((*MsgExecuteContractCompat)(nil), "injective.wasmx.v1.MsgExecuteContractCompat") proto.RegisterType((*MsgExecuteContractCompatResponse)(nil), "injective.wasmx.v1.MsgExecuteContractCompatResponse") + golang_proto.RegisterType((*MsgExecuteContractCompatResponse)(nil), "injective.wasmx.v1.MsgExecuteContractCompatResponse") proto.RegisterType((*MsgUpdateContract)(nil), "injective.wasmx.v1.MsgUpdateContract") + golang_proto.RegisterType((*MsgUpdateContract)(nil), "injective.wasmx.v1.MsgUpdateContract") proto.RegisterType((*MsgUpdateContractResponse)(nil), "injective.wasmx.v1.MsgUpdateContractResponse") + golang_proto.RegisterType((*MsgUpdateContractResponse)(nil), "injective.wasmx.v1.MsgUpdateContractResponse") proto.RegisterType((*MsgActivateContract)(nil), "injective.wasmx.v1.MsgActivateContract") + golang_proto.RegisterType((*MsgActivateContract)(nil), "injective.wasmx.v1.MsgActivateContract") proto.RegisterType((*MsgActivateContractResponse)(nil), "injective.wasmx.v1.MsgActivateContractResponse") + golang_proto.RegisterType((*MsgActivateContractResponse)(nil), "injective.wasmx.v1.MsgActivateContractResponse") proto.RegisterType((*MsgDeactivateContract)(nil), "injective.wasmx.v1.MsgDeactivateContract") + golang_proto.RegisterType((*MsgDeactivateContract)(nil), "injective.wasmx.v1.MsgDeactivateContract") proto.RegisterType((*MsgDeactivateContractResponse)(nil), "injective.wasmx.v1.MsgDeactivateContractResponse") + golang_proto.RegisterType((*MsgDeactivateContractResponse)(nil), "injective.wasmx.v1.MsgDeactivateContractResponse") proto.RegisterType((*MsgUpdateParams)(nil), "injective.wasmx.v1.MsgUpdateParams") + golang_proto.RegisterType((*MsgUpdateParams)(nil), "injective.wasmx.v1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.wasmx.v1.MsgUpdateParamsResponse") + golang_proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.wasmx.v1.MsgUpdateParamsResponse") proto.RegisterType((*MsgRegisterContract)(nil), "injective.wasmx.v1.MsgRegisterContract") + golang_proto.RegisterType((*MsgRegisterContract)(nil), "injective.wasmx.v1.MsgRegisterContract") proto.RegisterType((*MsgRegisterContractResponse)(nil), "injective.wasmx.v1.MsgRegisterContractResponse") + golang_proto.RegisterType((*MsgRegisterContractResponse)(nil), "injective.wasmx.v1.MsgRegisterContractResponse") } func init() { proto.RegisterFile("injective/wasmx/v1/tx.proto", fileDescriptor_f7afe23baa925f70) } +func init() { + golang_proto.RegisterFile("injective/wasmx/v1/tx.proto", fileDescriptor_f7afe23baa925f70) +} var fileDescriptor_f7afe23baa925f70 = []byte{ - // 808 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x41, 0x4f, 0xdc, 0x46, - 0x14, 0x5e, 0x97, 0x5d, 0x04, 0x53, 0x2a, 0xc0, 0x85, 0xb2, 0xeb, 0x2d, 0x86, 0xba, 0xaa, 0x60, - 0xa1, 0xac, 0x05, 0xad, 0x50, 0xb5, 0x37, 0xa0, 0x3d, 0x54, 0x65, 0x25, 0xe4, 0xaa, 0x97, 0x5e, - 0xb6, 0xb3, 0xf6, 0x30, 0xb8, 0x5a, 0x7b, 0x5c, 0xcf, 0x2c, 0x65, 0xdb, 0x4b, 0xd5, 0x1c, 0x22, - 0xe5, 0x94, 0x5f, 0x91, 0x5b, 0x24, 0x0e, 0xf9, 0x03, 0xb9, 0x71, 0x44, 0xc9, 0x25, 0xa7, 0x28, - 0x82, 0x48, 0xfc, 0x8d, 0xc8, 0x33, 0xe3, 0xd9, 0xe0, 0xb5, 0xc9, 0x46, 0x4a, 0x2e, 0x2b, 0xbf, - 0xf7, 0xbe, 0x99, 0xef, 0xfb, 0xde, 0xbc, 0xf1, 0x1a, 0xd4, 0xfd, 0xf0, 0x4f, 0xe4, 0x32, 0xff, - 0x14, 0xd9, 0x7f, 0x43, 0x1a, 0x9c, 0xd9, 0xa7, 0xdb, 0x36, 0x3b, 0x6b, 0x46, 0x31, 0x61, 0x44, - 0xd7, 0x55, 0xb1, 0xc9, 0x8b, 0xcd, 0xd3, 0x6d, 0x63, 0x01, 0x13, 0x4c, 0x78, 0xd9, 0x4e, 0x9e, - 0x04, 0xd2, 0xa8, 0x61, 0x42, 0x70, 0x0f, 0xd9, 0x3c, 0xea, 0xf6, 0x8f, 0x6d, 0x18, 0x0e, 0xd2, - 0x92, 0x4b, 0x68, 0x40, 0x68, 0x47, 0xac, 0x11, 0x81, 0x2c, 0x2d, 0x89, 0xc8, 0x0e, 0x28, 0x4e, - 0x78, 0x03, 0x8a, 0x65, 0xc1, 0xcc, 0x51, 0x25, 0x14, 0x88, 0xfa, 0x57, 0x39, 0xf5, 0x28, 0x26, - 0x11, 0xa1, 0xb0, 0x27, 0x21, 0xf3, 0x30, 0xf0, 0x43, 0x62, 0xf3, 0x5f, 0x91, 0xb2, 0x1e, 0x69, - 0xa0, 0xda, 0xa6, 0xf8, 0xa7, 0x33, 0xe4, 0xf6, 0x19, 0x3a, 0x20, 0x21, 0x8b, 0xa1, 0xcb, 0x0e, - 0x48, 0x10, 0x41, 0xa6, 0x7f, 0x01, 0x26, 0x29, 0x0a, 0x3d, 0x14, 0x57, 0xb5, 0x55, 0x6d, 0x7d, - 0xda, 0x91, 0x91, 0x6e, 0x80, 0x29, 0x57, 0x22, 0xab, 0x9f, 0xf0, 0x8a, 0x8a, 0xf5, 0x39, 0x30, - 0x11, 0x50, 0x5c, 0x9d, 0xe0, 0xe9, 0xe4, 0x51, 0x5f, 0x00, 0x95, 0xe3, 0x7e, 0xe8, 0xd1, 0x6a, - 0x99, 0xe7, 0x44, 0xd0, 0x6a, 0xfe, 0x7f, 0x73, 0xbe, 0x21, 0x37, 0x7c, 0x70, 0x73, 0xbe, 0x61, - 0x0a, 0xd1, 0x45, 0x5a, 0xac, 0x5d, 0xb0, 0x5a, 0x54, 0x73, 0x10, 0x8d, 0x48, 0x48, 0x91, 0xae, - 0x83, 0xb2, 0x07, 0x19, 0xe4, 0x6a, 0x67, 0x1c, 0xfe, 0x6c, 0xbd, 0xd6, 0xc0, 0x7c, 0x9b, 0xe2, - 0xdf, 0x22, 0x0f, 0x0e, 0xd7, 0x15, 0x3a, 0x6b, 0x80, 0xb9, 0xd4, 0x49, 0x07, 0x7a, 0x5e, 0x8c, - 0x28, 0x95, 0x0e, 0x67, 0xd3, 0xfc, 0x9e, 0x48, 0xeb, 0x75, 0x30, 0x8d, 0x21, 0xed, 0xf4, 0xfc, - 0xc0, 0x67, 0xdc, 0x6e, 0xd9, 0x99, 0xc2, 0x90, 0x1e, 0x26, 0x71, 0x5a, 0x8c, 0x62, 0xdf, 0x45, - 0xdc, 0xb7, 0x28, 0x1e, 0x25, 0xb1, 0xde, 0x00, 0x9f, 0x41, 0x2f, 0xf0, 0x43, 0xc5, 0x50, 0x49, - 0x18, 0xf6, 0xcb, 0x17, 0x2f, 0x57, 0x34, 0x67, 0x86, 0x97, 0x24, 0x49, 0x6b, 0x2d, 0xd3, 0xa5, - 0x25, 0xd5, 0xa5, 0xdb, 0x86, 0xac, 0x3a, 0xa8, 0x8d, 0x24, 0xd3, 0xbe, 0x58, 0xf7, 0x34, 0xf0, - 0x79, 0x9b, 0xe2, 0xbd, 0x64, 0x3a, 0x3e, 0x6c, 0x17, 0x5a, 0x8d, 0x8c, 0xc0, 0x9a, 0x12, 0x98, - 0x65, 0xb3, 0x96, 0x41, 0x3d, 0x27, 0xad, 0x44, 0xde, 0xd7, 0xc0, 0x62, 0x9b, 0xe2, 0x1f, 0x11, - 0xfc, 0x08, 0x32, 0x37, 0x33, 0x32, 0xeb, 0x4a, 0xe6, 0x28, 0x9f, 0xb5, 0x02, 0x96, 0x73, 0x0b, - 0x4a, 0xea, 0x63, 0x0d, 0xcc, 0xaa, 0x6e, 0x1f, 0xc1, 0x18, 0x06, 0x54, 0xdf, 0x05, 0xd3, 0xb0, - 0xcf, 0x4e, 0x48, 0xec, 0xb3, 0x81, 0xd0, 0xb9, 0x5f, 0x7d, 0xf6, 0x64, 0x6b, 0x41, 0x5e, 0x6e, - 0x29, 0xe4, 0x57, 0x16, 0xfb, 0x21, 0x76, 0x86, 0x50, 0xfd, 0x07, 0x30, 0x19, 0xf1, 0x1d, 0xb8, - 0xf4, 0x4f, 0x77, 0x8c, 0xe6, 0xe8, 0x0b, 0xa6, 0x29, 0x38, 0xf8, 0x84, 0x94, 0x1c, 0x89, 0x6f, - 0xad, 0x27, 0x9e, 0x86, 0x3b, 0x25, 0xb6, 0x16, 0x33, 0xe3, 0x21, 0xd6, 0x59, 0x35, 0xb0, 0x94, - 0x49, 0x29, 0x2b, 0xcf, 0xc5, 0x68, 0x38, 0x08, 0xfb, 0x94, 0xa1, 0xf8, 0x9d, 0x3d, 0x1f, 0x80, - 0x65, 0xd5, 0xf3, 0x98, 0x2f, 0x8a, 0x21, 0xf3, 0x49, 0xd8, 0x89, 0xd1, 0x5f, 0x7d, 0x44, 0x99, - 0x74, 0x61, 0xe7, 0xb9, 0x18, 0xf6, 0x71, 0xb8, 0xce, 0x11, 0xcb, 0xa4, 0xb5, 0xba, 0x5b, 0x0c, - 0xb9, 0x63, 0xd4, 0xb2, 0xea, 0xe5, 0xa8, 0x65, 0xd3, 0xa9, 0xe9, 0x9d, 0xa7, 0x15, 0x30, 0xd1, - 0xa6, 0x58, 0x67, 0xe0, 0x4b, 0xd1, 0x14, 0x49, 0x37, 0x48, 0x91, 0xf2, 0x4c, 0xbf, 0xc9, 0x73, - 0x31, 0x72, 0xcd, 0x8c, 0xad, 0xb1, 0x60, 0xea, 0x2d, 0xc5, 0x40, 0x35, 0xbd, 0x04, 0x59, 0x5e, - 0x7d, 0xad, 0x60, 0xab, 0xec, 0xad, 0x31, 0xec, 0x31, 0x81, 0x8a, 0xf5, 0x1f, 0x60, 0x0c, 0x27, - 0x7a, 0x84, 0xb7, 0x51, 0xb0, 0xdd, 0xe8, 0x25, 0x30, 0xb6, 0xc7, 0x86, 0x2a, 0xee, 0x7f, 0xc1, - 0x62, 0xfe, 0x1f, 0xcc, 0xb7, 0x05, 0x7b, 0xe5, 0xa2, 0x8d, 0xef, 0xdf, 0x07, 0xad, 0xc8, 0xff, - 0x00, 0x33, 0xb7, 0x2e, 0xea, 0xd7, 0x77, 0x9e, 0x96, 0x00, 0x19, 0x9b, 0x63, 0x80, 0x14, 0x43, - 0x0f, 0xcc, 0x8d, 0xdc, 0x9f, 0xa2, 0x83, 0xcc, 0x02, 0x0b, 0x0f, 0xb2, 0x68, 0x78, 0x8d, 0xca, - 0x7f, 0x37, 0xe7, 0x1b, 0xda, 0x3e, 0xba, 0xb8, 0x32, 0xb5, 0xcb, 0x2b, 0x53, 0x7b, 0x75, 0x65, - 0x6a, 0x0f, 0xaf, 0xcd, 0xd2, 0xe5, 0xb5, 0x59, 0x7a, 0x71, 0x6d, 0x96, 0x7e, 0xff, 0x05, 0xfb, - 0xec, 0xa4, 0xdf, 0x6d, 0xba, 0x24, 0xb0, 0x7f, 0x4e, 0xf7, 0x3e, 0x84, 0x5d, 0x6a, 0x2b, 0xa6, - 0x2d, 0x97, 0xc4, 0xe8, 0xed, 0xf0, 0x04, 0xfa, 0xa1, 0x1d, 0x10, 0xaf, 0xdf, 0x43, 0x54, 0x7e, - 0x3e, 0xb0, 0x41, 0x84, 0x68, 0x77, 0x92, 0x7f, 0x26, 0x7c, 0xf7, 0x26, 0x00, 0x00, 0xff, 0xff, - 0x2d, 0xeb, 0x38, 0x54, 0x14, 0x09, 0x00, 0x00, + // 812 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x41, 0x4f, 0xe3, 0x46, + 0x14, 0x8e, 0x4b, 0x82, 0x60, 0x4a, 0x05, 0xb8, 0x50, 0x12, 0xa7, 0x18, 0xea, 0xaa, 0x82, 0x40, + 0x89, 0x05, 0xad, 0x50, 0x95, 0x1b, 0xd0, 0x1e, 0xaa, 0x12, 0x09, 0xb9, 0xea, 0xa5, 0x97, 0x74, + 0x62, 0x0f, 0x83, 0xab, 0xd8, 0xe3, 0x7a, 0x26, 0x94, 0xb4, 0x97, 0xaa, 0x3d, 0x54, 0xea, 0xa9, + 0xbf, 0xa2, 0xb7, 0x4a, 0x1c, 0xf6, 0x07, 0xec, 0xde, 0x38, 0xa2, 0xdd, 0xcb, 0x9e, 0x56, 0x2b, + 0xb2, 0x12, 0x7f, 0x63, 0xe5, 0x99, 0xf1, 0x64, 0x71, 0x6c, 0x36, 0x2b, 0xed, 0x5e, 0x22, 0xbf, + 0xf7, 0xbe, 0x99, 0xef, 0xfb, 0xde, 0xbc, 0x71, 0x0c, 0xea, 0x7e, 0xf8, 0x33, 0x72, 0x99, 0x7f, + 0x8e, 0xec, 0x5f, 0x21, 0x0d, 0x2e, 0xec, 0xf3, 0x5d, 0x9b, 0x5d, 0x34, 0xa3, 0x98, 0x30, 0xa2, + 0xeb, 0xaa, 0xd8, 0xe4, 0xc5, 0xe6, 0xf9, 0xae, 0xb1, 0x84, 0x09, 0x26, 0xbc, 0x6c, 0x27, 0x4f, + 0x02, 0x69, 0xd4, 0x30, 0x21, 0xb8, 0x87, 0x6c, 0x1e, 0x75, 0xfb, 0xa7, 0x36, 0x0c, 0x07, 0x69, + 0xc9, 0x25, 0x34, 0x20, 0xb4, 0x23, 0xd6, 0x88, 0x40, 0x96, 0x56, 0x44, 0x64, 0x07, 0x14, 0x27, + 0xbc, 0x01, 0xc5, 0xb2, 0x60, 0xe6, 0xa8, 0x12, 0x0a, 0x44, 0xfd, 0x93, 0x9c, 0x7a, 0x14, 0x93, + 0x88, 0x50, 0xd8, 0x93, 0x90, 0x45, 0x18, 0xf8, 0x21, 0xb1, 0xf9, 0xaf, 0x48, 0x59, 0xff, 0x69, + 0xa0, 0xda, 0xa6, 0xf8, 0x9b, 0x0b, 0xe4, 0xf6, 0x19, 0x3a, 0x22, 0x21, 0x8b, 0xa1, 0xcb, 0x8e, + 0x48, 0x10, 0x41, 0xa6, 0x7f, 0x04, 0xa6, 0x29, 0x0a, 0x3d, 0x14, 0x57, 0xb5, 0x75, 0x6d, 0x73, + 0xd6, 0x91, 0x91, 0x6e, 0x80, 0x19, 0x57, 0x22, 0xab, 0xef, 0xf1, 0x8a, 0x8a, 0xf5, 0x05, 0x30, + 0x15, 0x50, 0x5c, 0x9d, 0xe2, 0xe9, 0xe4, 0x51, 0x5f, 0x02, 0x95, 0xd3, 0x7e, 0xe8, 0xd1, 0x6a, + 0x99, 0xe7, 0x44, 0xd0, 0x6a, 0xfe, 0x79, 0x7b, 0xb9, 0x25, 0x37, 0xfc, 0xe7, 0xf6, 0x72, 0xcb, + 0x14, 0xa2, 0x8b, 0xb4, 0x58, 0xfb, 0x60, 0xbd, 0xa8, 0xe6, 0x20, 0x1a, 0x91, 0x90, 0x22, 0x5d, + 0x07, 0x65, 0x0f, 0x32, 0xc8, 0xd5, 0xce, 0x39, 0xfc, 0xd9, 0x7a, 0xa1, 0x81, 0xc5, 0x36, 0xc5, + 0x3f, 0x44, 0x1e, 0x1c, 0xad, 0x2b, 0x74, 0xd6, 0x00, 0x0b, 0xa9, 0x93, 0x0e, 0xf4, 0xbc, 0x18, + 0x51, 0x2a, 0x1d, 0xce, 0xa7, 0xf9, 0x03, 0x91, 0xd6, 0xeb, 0x60, 0x16, 0x43, 0xda, 0xe9, 0xf9, + 0x81, 0xcf, 0xb8, 0xdd, 0xb2, 0x33, 0x83, 0x21, 0x3d, 0x4e, 0xe2, 0xb4, 0x18, 0xc5, 0xbe, 0x8b, + 0xb8, 0x6f, 0x51, 0x3c, 0x49, 0x62, 0xbd, 0x01, 0x3e, 0x80, 0x5e, 0xe0, 0x87, 0x8a, 0xa1, 0x92, + 0x30, 0x1c, 0x96, 0xaf, 0x9e, 0xad, 0x69, 0xce, 0x1c, 0x2f, 0x49, 0x92, 0xd6, 0x46, 0xa6, 0x4b, + 0x2b, 0xaa, 0x4b, 0x77, 0x0d, 0x59, 0x75, 0x50, 0x1b, 0x4b, 0xa6, 0x7d, 0xb1, 0xfe, 0xd2, 0xc0, + 0x87, 0x6d, 0x8a, 0x0f, 0x92, 0xe9, 0x78, 0xbb, 0x5d, 0x68, 0x35, 0x32, 0x02, 0x6b, 0x4a, 0x60, + 0x96, 0xcd, 0x5a, 0x05, 0xf5, 0x9c, 0xb4, 0x12, 0xf9, 0xb7, 0x06, 0x96, 0xdb, 0x14, 0x7f, 0x8d, + 0xe0, 0x3b, 0x90, 0xb9, 0x9d, 0x91, 0x59, 0x57, 0x32, 0xc7, 0xf9, 0xac, 0x35, 0xb0, 0x9a, 0x5b, + 0x50, 0x52, 0xff, 0xd7, 0xc0, 0xbc, 0xea, 0xf6, 0x09, 0x8c, 0x61, 0x40, 0xf5, 0x7d, 0x30, 0x0b, + 0xfb, 0xec, 0x8c, 0xc4, 0x3e, 0x1b, 0x08, 0x9d, 0x87, 0xd5, 0xc7, 0x0f, 0x76, 0x96, 0xe4, 0xe5, + 0x96, 0x42, 0xbe, 0x67, 0xb1, 0x1f, 0x62, 0x67, 0x04, 0xd5, 0xbf, 0x02, 0xd3, 0x11, 0xdf, 0x81, + 0x4b, 0x7f, 0x7f, 0xcf, 0x68, 0x8e, 0xbf, 0x60, 0x9a, 0x82, 0x83, 0x4f, 0x48, 0xc9, 0x91, 0xf8, + 0xd6, 0x66, 0xe2, 0x69, 0xb4, 0x53, 0x62, 0x6b, 0x39, 0x33, 0x1e, 0x62, 0x9d, 0x55, 0x03, 0x2b, + 0x99, 0x94, 0xb2, 0xf2, 0x44, 0x8c, 0x86, 0x83, 0xb0, 0x4f, 0x19, 0x8a, 0x5f, 0xdb, 0xf3, 0x01, + 0x58, 0x55, 0x3d, 0x8f, 0xf9, 0xa2, 0x18, 0x32, 0x9f, 0x84, 0x9d, 0x18, 0xfd, 0xd2, 0x47, 0x94, + 0x49, 0x17, 0x76, 0x9e, 0x8b, 0x51, 0x1f, 0x47, 0xeb, 0x1c, 0xb1, 0x4c, 0x5a, 0xab, 0xbb, 0xc5, + 0x90, 0x7b, 0x46, 0x2d, 0xab, 0x5e, 0x8e, 0x5a, 0x36, 0x9d, 0x9a, 0xde, 0x7b, 0x54, 0x01, 0x53, + 0x6d, 0x8a, 0x75, 0x06, 0x3e, 0x16, 0x4d, 0x91, 0x74, 0x83, 0x14, 0x29, 0xcf, 0xf4, 0xb3, 0x3c, + 0x17, 0x63, 0xd7, 0xcc, 0xd8, 0x99, 0x08, 0xa6, 0xde, 0x52, 0x0c, 0x54, 0xd3, 0x4b, 0x90, 0xe5, + 0xd5, 0x37, 0x0a, 0xb6, 0xca, 0xde, 0x1a, 0xc3, 0x9e, 0x10, 0xa8, 0x58, 0x7f, 0x03, 0xc6, 0x68, + 0xa2, 0xc7, 0x78, 0x1b, 0x05, 0xdb, 0x8d, 0x5f, 0x02, 0x63, 0x77, 0x62, 0xa8, 0xe2, 0xfe, 0x1d, + 0x2c, 0xe7, 0xff, 0xc1, 0x7c, 0x5e, 0xb0, 0x57, 0x2e, 0xda, 0xf8, 0xf2, 0x4d, 0xd0, 0x8a, 0xfc, + 0x27, 0x30, 0x77, 0xe7, 0xa2, 0x7e, 0x7a, 0xef, 0x69, 0x09, 0x90, 0xb1, 0x3d, 0x01, 0x48, 0x31, + 0xf4, 0xc0, 0xc2, 0xd8, 0xfd, 0x29, 0x3a, 0xc8, 0x2c, 0xb0, 0xf0, 0x20, 0x8b, 0x86, 0xd7, 0xa8, + 0xfc, 0x71, 0x7b, 0xb9, 0xa5, 0x1d, 0xfa, 0x57, 0x37, 0xa6, 0x76, 0x7d, 0x63, 0x6a, 0xcf, 0x6f, + 0x4c, 0xed, 0xdf, 0xa1, 0x59, 0x7a, 0x38, 0x34, 0xb5, 0xeb, 0xa1, 0x59, 0x7a, 0x3a, 0x34, 0x4b, + 0x3f, 0x7e, 0x87, 0x7d, 0x76, 0xd6, 0xef, 0x36, 0x5d, 0x12, 0xd8, 0xdf, 0xa6, 0xfb, 0x1f, 0xc3, + 0x2e, 0xb5, 0x15, 0xdb, 0x8e, 0x4b, 0x62, 0xf4, 0x6a, 0x78, 0x06, 0xfd, 0xd0, 0x0e, 0x88, 0xd7, + 0xef, 0x21, 0x2a, 0x3f, 0x21, 0xd8, 0x20, 0x42, 0xb4, 0x3b, 0xcd, 0x3f, 0x15, 0xbe, 0x78, 0x19, + 0x00, 0x00, 0xff, 0xff, 0xb5, 0xa5, 0x60, 0xac, 0x18, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/client/chain/chain_test_support.go b/client/chain/chain_test_support.go index ae1f3bc9..f27d9516 100644 --- a/client/chain/chain_test_support.go +++ b/client/chain/chain_test_support.go @@ -24,10 +24,12 @@ import ( ethcommon "github.com/ethereum/go-ethereum/common" "google.golang.org/grpc" + auctiontypes "github.com/InjectiveLabs/sdk-go/chain/auction/types" erc20types "github.com/InjectiveLabs/sdk-go/chain/erc20/types" evmtypes "github.com/InjectiveLabs/sdk-go/chain/evm/types" exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" + insurancetypes "github.com/InjectiveLabs/sdk-go/chain/insurance/types" permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" chainstreamv2types "github.com/InjectiveLabs/sdk-go/chain/stream/types/v2" tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" @@ -864,6 +866,22 @@ func (c *MockChainClientV2) FetchPermissionsVoucher(ctx context.Context, denom, return &permissionstypes.QueryVoucherResponse{}, nil } +func (c *MockChainClientV2) FetchAuctionVouchers(ctx context.Context, denom string) (*auctiontypes.QueryVouchersResponse, error) { + return &auctiontypes.QueryVouchersResponse{}, nil +} + +func (c *MockChainClientV2) FetchAuctionVoucher(ctx context.Context, denom, address string) (*auctiontypes.QueryVoucherResponse, error) { + return &auctiontypes.QueryVoucherResponse{}, nil +} + +func (c *MockChainClientV2) FetchInsuranceVouchers(ctx context.Context, denom string) (*insurancetypes.QueryVouchersResponse, error) { + return &insurancetypes.QueryVouchersResponse{}, nil +} + +func (c *MockChainClientV2) FetchInsuranceVoucher(ctx context.Context, denom, address string) (*insurancetypes.QueryVoucherResponse, error) { + return &insurancetypes.QueryVoucherResponse{}, nil +} + func (c *MockChainClientV2) FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) { return &permissionstypes.QueryModuleStateResponse{}, nil } diff --git a/client/chain/chain_v2.go b/client/chain/chain_v2.go index f92066a4..7b4e6679 100644 --- a/client/chain/chain_v2.go +++ b/client/chain/chain_v2.go @@ -40,9 +40,11 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" + auctiontypes "github.com/InjectiveLabs/sdk-go/chain/auction/types" erc20types "github.com/InjectiveLabs/sdk-go/chain/erc20/types" evmtypes "github.com/InjectiveLabs/sdk-go/chain/evm/types" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" + insurancetypes "github.com/InjectiveLabs/sdk-go/chain/insurance/types" permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" chainstreamv2types "github.com/InjectiveLabs/sdk-go/chain/stream/types/v2" tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" @@ -285,6 +287,14 @@ type ChainClientV2 interface { FetchPermissionsVoucher(ctx context.Context, denom, address string) (*permissionstypes.QueryVoucherResponse, error) FetchPermissionsModuleState(ctx context.Context) (*permissionstypes.QueryModuleStateResponse, error) + // Auction module + FetchAuctionVouchers(ctx context.Context, denom string) (*auctiontypes.QueryVouchersResponse, error) + FetchAuctionVoucher(ctx context.Context, denom, address string) (*auctiontypes.QueryVoucherResponse, error) + + // Insurance module + FetchInsuranceVouchers(ctx context.Context, denom string) (*insurancetypes.QueryVouchersResponse, error) + FetchInsuranceVoucher(ctx context.Context, denom, address string) (*insurancetypes.QueryVoucherResponse, error) + // TxFees module FetchTxFeesParams(ctx context.Context) (*txfeestypes.QueryParamsResponse, error) FetchEipBaseFee(ctx context.Context) (*txfeestypes.QueryEipBaseFeeResponse, error) @@ -337,12 +347,14 @@ type chainClientV2 struct { authQueryClient authtypes.QueryClient authzQueryClient authztypes.QueryClient + auctionQueryClient auctiontypes.QueryClient bankQueryClient banktypes.QueryClient chainStreamV2Client chainstreamv2types.StreamClient distributionQueryClient distributiontypes.QueryClient erc20QueryClient erc20types.QueryClient evmQueryClient evmtypes.QueryClient exchangeV2QueryClient exchangev2types.QueryClient + insuranceQueryClient insurancetypes.QueryClient ibcChannelQueryClient ibcchanneltypes.QueryClient ibcClientQueryClient ibcclienttypes.QueryClient ibcConnectionQueryClient ibcconnectiontypes.QueryClient @@ -465,12 +477,14 @@ func NewChainClientV2( authQueryClient: authtypes.NewQueryClient(conn), authzQueryClient: authztypes.NewQueryClient(conn), + auctionQueryClient: auctiontypes.NewQueryClient(conn), bankQueryClient: banktypes.NewQueryClient(conn), chainStreamV2Client: chainstreamv2types.NewStreamClient(chainStreamConn), distributionQueryClient: distributiontypes.NewQueryClient(conn), erc20QueryClient: erc20types.NewQueryClient(conn), evmQueryClient: evmtypes.NewQueryClient(conn), exchangeV2QueryClient: exchangev2types.NewQueryClient(conn), + insuranceQueryClient: insurancetypes.NewQueryClient(conn), ibcChannelQueryClient: ibcchanneltypes.NewQueryClient(conn), ibcClientQueryClient: ibcclienttypes.NewQueryClient(conn), ibcConnectionQueryClient: ibcconnectiontypes.NewQueryClient(conn), @@ -2504,6 +2518,44 @@ func (c *chainClientV2) FetchPermissionsModuleState(ctx context.Context) (*permi return res, err } +func (c *chainClientV2) FetchAuctionVouchers(ctx context.Context, denom string) (*auctiontypes.QueryVouchersResponse, error) { + req := &auctiontypes.QueryVouchersRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.auctionQueryClient.Vouchers, req) + + return res, err +} + +func (c *chainClientV2) FetchAuctionVoucher(ctx context.Context, denom, address string) (*auctiontypes.QueryVoucherResponse, error) { + req := &auctiontypes.QueryVoucherRequest{ + Denom: denom, + Address: address, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.auctionQueryClient.Voucher, req) + + return res, err +} + +func (c *chainClientV2) FetchInsuranceVouchers(ctx context.Context, denom string) (*insurancetypes.QueryVouchersResponse, error) { + req := &insurancetypes.QueryVouchersRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.insuranceQueryClient.Vouchers, req) + + return res, err +} + +func (c *chainClientV2) FetchInsuranceVoucher(ctx context.Context, denom, address string) (*insurancetypes.QueryVoucherResponse, error) { + req := &insurancetypes.QueryVoucherRequest{ + Denom: denom, + Address: address, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.insuranceQueryClient.Voucher, req) + + return res, err +} + // TxFees module func (c *chainClientV2) FetchTxFeesParams(ctx context.Context) (*txfeestypes.QueryParamsResponse, error) { req := &txfeestypes.QueryParamsRequest{} diff --git a/client/exchange/exchange.go b/client/exchange/exchange.go index cd34a6a8..46e53544 100644 --- a/client/exchange/exchange.go +++ b/client/exchange/exchange.go @@ -51,6 +51,8 @@ type ExchangeClient interface { FetchPriceV2(ctx context.Context, filters []*oraclePB.PricePayloadV2) (*oraclePB.PriceV2Response, error) GetOracleList(ctx context.Context, symbol, oracleType, token string, perPage int32) (*oraclePB.OracleListResponse, error) StreamPrices(ctx context.Context, baseSymbol string, quoteSymbol string, oracleType string) (oraclePB.InjectiveOracleRPC_StreamPricesClient, error) + StreamOracleList(ctx context.Context, oracleType string, symbols []string) (oraclePB.InjectiveOracleRPC_StreamOracleListClient, error) + StreamPricesByMarkets(ctx context.Context, marketIds []string) (oraclePB.InjectiveOracleRPC_StreamPricesByMarketsClient, error) GetAuction(ctx context.Context, round int64) (*auctionPB.AuctionEndpointResponse, error) GetAuctions(ctx context.Context) (*auctionPB.AuctionsResponse, error) StreamBids(ctx context.Context) (auctionPB.InjectiveAuctionRPC_StreamBidsClient, error) @@ -505,6 +507,37 @@ func (c *exchangeClient) StreamPrices(ctx context.Context, baseSymbol, quoteSymb return stream, nil } +func (c *exchangeClient) StreamOracleList(ctx context.Context, oracleType string, symbols []string) (oraclePB.InjectiveOracleRPC_StreamOracleListClient, error) { + req := oraclePB.StreamOracleListRequest{ + OracleType: oracleType, + Symbols: symbols, + } + + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.oracleClient.StreamOracleList, &req) + + if err != nil { + fmt.Println(err) + return nil, err + } + + return stream, nil +} + +func (c *exchangeClient) StreamPricesByMarkets(ctx context.Context, marketIds []string) (oraclePB.InjectiveOracleRPC_StreamPricesByMarketsClient, error) { + req := oraclePB.StreamPricesByMarketsRequest{ + MarketIds: marketIds, + } + + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.oracleClient.StreamPricesByMarkets, &req) + + if err != nil { + fmt.Println(err) + return nil, err + } + + return stream, nil +} + // Auction RPC func (c *exchangeClient) GetAuction(ctx context.Context, round int64) (*auctionPB.AuctionEndpointResponse, error) { diff --git a/examples/chain/13_BroadcastMsgWithoutSimulation/example.go b/examples/chain/13_BroadcastMsgWithoutSimulation/example.go index a9401f8a..5c5d899a 100644 --- a/examples/chain/13_BroadcastMsgWithoutSimulation/example.go +++ b/examples/chain/13_BroadcastMsgWithoutSimulation/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/14_HistoricalQueryByHeight/example.go b/examples/chain/14_HistoricalQueryByHeight/example.go index b9ecdee8..6510a571 100644 --- a/examples/chain/14_HistoricalQueryByHeight/example.go +++ b/examples/chain/14_HistoricalQueryByHeight/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" grpctypes "github.com/cosmos/cosmos-sdk/types/grpc" + "github.com/joho/godotenv" "google.golang.org/grpc/metadata" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -19,6 +20,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -31,7 +33,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/1_LocalOrderHash/example.go b/examples/chain/1_LocalOrderHash/example.go index 42216c66..4983109f 100644 --- a/examples/chain/1_LocalOrderHash/example.go +++ b/examples/chain/1_LocalOrderHash/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) if err != nil { diff --git a/examples/chain/2_MsgBatchCancelSpotOrders/example.go b/examples/chain/2_MsgBatchCancelSpotOrders/example.go index 28d39f85..a29b3c6c 100644 --- a/examples/chain/2_MsgBatchCancelSpotOrders/example.go +++ b/examples/chain/2_MsgBatchCancelSpotOrders/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/3_MsgBatchCancelDerivativeOrders/example.go b/examples/chain/3_MsgBatchCancelDerivativeOrders/example.go index 0497ebe1..de157053 100644 --- a/examples/chain/3_MsgBatchCancelDerivativeOrders/example.go +++ b/examples/chain/3_MsgBatchCancelDerivativeOrders/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go b/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go index d66b85f3..6417db76 100644 --- a/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go +++ b/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go b/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go index bd827906..84e3f45b 100644 --- a/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go +++ b/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/6_MsgRegisterAsDMM/example.go b/examples/chain/6_MsgRegisterAsDMM/example.go index a51afc2c..f08e7a99 100644 --- a/examples/chain/6_MsgRegisterAsDMM/example.go +++ b/examples/chain/6_MsgRegisterAsDMM/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/8_OfflineSigning/example.go b/examples/chain/8_OfflineSigning/example.go index 2ff52462..4bdcf8e9 100644 --- a/examples/chain/8_OfflineSigning/example.go +++ b/examples/chain/8_OfflineSigning/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -27,6 +28,7 @@ func LoadTxFromFile(fileName string) ([]byte, error) { } func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -39,7 +41,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/auction/1_MsgBid/example.go b/examples/chain/auction/1_MsgBid/example.go index eea39676..534b743c 100644 --- a/examples/chain/auction/1_MsgBid/example.go +++ b/examples/chain/auction/1_MsgBid/example.go @@ -11,6 +11,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" auctiontypes "github.com/InjectiveLabs/sdk-go/chain/auction/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/auction/2_MsgClaimVoucher/example.go b/examples/chain/auction/2_MsgClaimVoucher/example.go new file mode 100644 index 00000000..6235334a --- /dev/null +++ b/examples/chain/auction/2_MsgClaimVoucher/example.go @@ -0,0 +1,88 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + "time" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" + + auctiontypes "github.com/InjectiveLabs/sdk-go/chain/auction/types" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + _ = godotenv.Load() + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + ) + + if err != nil { + panic(err) + } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + gasPrice := chainClient.CurrentChainGasPrice(ctx) + gasPrice = int64(float64(gasPrice) * 1.1) + chainClient.SetGasPrice(gasPrice) + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + msg := &auctiontypes.MsgClaimVoucher{ + Sender: senderAddress.String(), + Denom: denom, + } + + _, response, err := chainClient.BroadcastMsg(ctx, txtypes.BroadcastMode_BROADCAST_MODE_SYNC, msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", "\t") + fmt.Print(string(str)) + + gasPrice = chainClient.CurrentChainGasPrice(ctx) + gasPrice = int64(float64(gasPrice) * 1.1) + chainClient.SetGasPrice(gasPrice) +} diff --git a/examples/chain/auction/query/1_Vouchers/example.go b/examples/chain/auction/query/1_Vouchers/example.go new file mode 100644 index 00000000..b4411f88 --- /dev/null +++ b/examples/chain/auction/query/1_Vouchers/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + _ = godotenv.Load() + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchAuctionVouchers(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", "\t") + fmt.Print(string(str)) +} diff --git a/examples/chain/auction/query/2_Voucher/example.go b/examples/chain/auction/query/2_Voucher/example.go new file mode 100644 index 00000000..2fc856a6 --- /dev/null +++ b/examples/chain/auction/query/2_Voucher/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" +) + +func main() { + _ = godotenv.Load() + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + address := "inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr" + + res, err := chainClient.FetchAuctionVoucher(ctx, denom, address) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", "\t") + fmt.Print(string(str)) +} diff --git a/examples/chain/auth/query/1_Account/example.go b/examples/chain/auth/query/1_Account/example.go index 0755f2c9..e57e8cf7 100644 --- a/examples/chain/auth/query/1_Account/example.go +++ b/examples/chain/auth/query/1_Account/example.go @@ -6,6 +6,7 @@ import ( "os" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/chain/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("mainnet", "sentry0") tmClient, err := rpchttp.New(network.TmEndpoint) @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/authz/1_MsgGrant/example.go b/examples/chain/authz/1_MsgGrant/example.go index 15d76e82..59d62a95 100644 --- a/examples/chain/authz/1_MsgGrant/example.go +++ b/examples/chain/authz/1_MsgGrant/example.go @@ -9,12 +9,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/authz/2_MsgExec/example.go b/examples/chain/authz/2_MsgExec/example.go index 90e07b8a..181f949a 100644 --- a/examples/chain/authz/2_MsgExec/example.go +++ b/examples/chain/authz/2_MsgExec/example.go @@ -12,6 +12,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" authztypes "github.com/cosmos/cosmos-sdk/x/authz" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -20,6 +21,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -32,7 +34,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) @@ -46,7 +48,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/authz/3_MsgRevoke/example.go b/examples/chain/authz/3_MsgRevoke/example.go index a3fae58d..37c91197 100644 --- a/examples/chain/authz/3_MsgRevoke/example.go +++ b/examples/chain/authz/3_MsgRevoke/example.go @@ -10,12 +10,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" authztypes "github.com/cosmos/cosmos-sdk/x/authz" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/authz/query/1_Grants/example.go b/examples/chain/authz/query/1_Grants/example.go index 52b8a08b..2a052672 100644 --- a/examples/chain/authz/query/1_Grants/example.go +++ b/examples/chain/authz/query/1_Grants/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/1_MsgSend/example.go b/examples/chain/bank/1_MsgSend/example.go index 61c35603..0afd7af0 100644 --- a/examples/chain/bank/1_MsgSend/example.go +++ b/examples/chain/bank/1_MsgSend/example.go @@ -12,12 +12,14 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/2_MsgMultiSend/example.go b/examples/chain/bank/2_MsgMultiSend/example.go index 7ff99c6f..a5fba5e9 100644 --- a/examples/chain/bank/2_MsgMultiSend/example.go +++ b/examples/chain/bank/2_MsgMultiSend/example.go @@ -12,12 +12,14 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/10_BankSendEnabled/example.go b/examples/chain/bank/query/10_BankSendEnabled/example.go index 4eda46a6..96a7cd20 100644 --- a/examples/chain/bank/query/10_BankSendEnabled/example.go +++ b/examples/chain/bank/query/10_BankSendEnabled/example.go @@ -8,6 +8,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/1_BankBalance/example.go b/examples/chain/bank/query/1_BankBalance/example.go index b44eb035..cfde6778 100644 --- a/examples/chain/bank/query/1_BankBalance/example.go +++ b/examples/chain/bank/query/1_BankBalance/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/2_BankBalances/example.go b/examples/chain/bank/query/2_BankBalances/example.go index d551bcef..d47fb8b5 100644 --- a/examples/chain/bank/query/2_BankBalances/example.go +++ b/examples/chain/bank/query/2_BankBalances/example.go @@ -9,11 +9,13 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "os" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/3_BankSpendableBalances/example.go b/examples/chain/bank/query/3_BankSpendableBalances/example.go index 6c20b300..deef9899 100644 --- a/examples/chain/bank/query/3_BankSpendableBalances/example.go +++ b/examples/chain/bank/query/3_BankSpendableBalances/example.go @@ -7,6 +7,7 @@ import ( "github.com/InjectiveLabs/sdk-go/client" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/4_BankSpendableBalancesByDenom/example.go b/examples/chain/bank/query/4_BankSpendableBalancesByDenom/example.go index d6a0f5ba..96d878b6 100644 --- a/examples/chain/bank/query/4_BankSpendableBalancesByDenom/example.go +++ b/examples/chain/bank/query/4_BankSpendableBalancesByDenom/example.go @@ -9,11 +9,13 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "os" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/5_BankTotalSupply/example.go b/examples/chain/bank/query/5_BankTotalSupply/example.go index af777305..88d41c04 100644 --- a/examples/chain/bank/query/5_BankTotalSupply/example.go +++ b/examples/chain/bank/query/5_BankTotalSupply/example.go @@ -7,6 +7,7 @@ import ( "github.com/InjectiveLabs/sdk-go/client" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/6_BankSupplyOf/example.go b/examples/chain/bank/query/6_BankSupplyOf/example.go index c0ecbbbf..3c24c368 100644 --- a/examples/chain/bank/query/6_BankSupplyOf/example.go +++ b/examples/chain/bank/query/6_BankSupplyOf/example.go @@ -9,11 +9,13 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "os" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/7_DenomMetadata/example.go b/examples/chain/bank/query/7_DenomMetadata/example.go index d1abb79c..23f3eb69 100644 --- a/examples/chain/bank/query/7_DenomMetadata/example.go +++ b/examples/chain/bank/query/7_DenomMetadata/example.go @@ -9,11 +9,13 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "os" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/8_DenomsMetadata/example.go b/examples/chain/bank/query/8_DenomsMetadata/example.go index d38cf02d..8b77d03d 100644 --- a/examples/chain/bank/query/8_DenomsMetadata/example.go +++ b/examples/chain/bank/query/8_DenomsMetadata/example.go @@ -7,6 +7,7 @@ import ( "github.com/InjectiveLabs/sdk-go/client" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/bank/query/9_DenomOwners/example.go b/examples/chain/bank/query/9_DenomOwners/example.go index 87f90c2b..c27db8c3 100644 --- a/examples/chain/bank/query/9_DenomOwners/example.go +++ b/examples/chain/bank/query/9_DenomOwners/example.go @@ -10,11 +10,13 @@ import ( "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/1_SetWithdrawAddress/example.go b/examples/chain/distribution/1_SetWithdrawAddress/example.go index 9d360e81..7df11575 100644 --- a/examples/chain/distribution/1_SetWithdrawAddress/example.go +++ b/examples/chain/distribution/1_SetWithdrawAddress/example.go @@ -9,12 +9,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go b/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go index cdb809d6..e585646d 100644 --- a/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go +++ b/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go @@ -10,12 +10,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/3_WithdrawValidatorCommission/example.go b/examples/chain/distribution/3_WithdrawValidatorCommission/example.go index 3f94b6a1..df489134 100644 --- a/examples/chain/distribution/3_WithdrawValidatorCommission/example.go +++ b/examples/chain/distribution/3_WithdrawValidatorCommission/example.go @@ -9,12 +9,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/4_FundCommunityPool/example.go b/examples/chain/distribution/4_FundCommunityPool/example.go index 83ef8209..594884ee 100644 --- a/examples/chain/distribution/4_FundCommunityPool/example.go +++ b/examples/chain/distribution/4_FundCommunityPool/example.go @@ -11,12 +11,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/types" distriutiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/1_ValidatorDistributionInfo/example.go b/examples/chain/distribution/query/1_ValidatorDistributionInfo/example.go index 97465b06..f41890cd 100644 --- a/examples/chain/distribution/query/1_ValidatorDistributionInfo/example.go +++ b/examples/chain/distribution/query/1_ValidatorDistributionInfo/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/2_ValidatorOutstandingRewards/example.go b/examples/chain/distribution/query/2_ValidatorOutstandingRewards/example.go index 0358eb64..ce74f674 100644 --- a/examples/chain/distribution/query/2_ValidatorOutstandingRewards/example.go +++ b/examples/chain/distribution/query/2_ValidatorOutstandingRewards/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/3_ValidatorCommission/example.go b/examples/chain/distribution/query/3_ValidatorCommission/example.go index dd48b721..b62d1dfb 100644 --- a/examples/chain/distribution/query/3_ValidatorCommission/example.go +++ b/examples/chain/distribution/query/3_ValidatorCommission/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/4_ValidatorSlashes/example.go b/examples/chain/distribution/query/4_ValidatorSlashes/example.go index 663d4832..85f55cff 100644 --- a/examples/chain/distribution/query/4_ValidatorSlashes/example.go +++ b/examples/chain/distribution/query/4_ValidatorSlashes/example.go @@ -7,6 +7,7 @@ import ( "os" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/5_DelegationRewards/example.go b/examples/chain/distribution/query/5_DelegationRewards/example.go index d7679b9d..86fd64e3 100644 --- a/examples/chain/distribution/query/5_DelegationRewards/example.go +++ b/examples/chain/distribution/query/5_DelegationRewards/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/6_DelegationTotalRewards/example.go b/examples/chain/distribution/query/6_DelegationTotalRewards/example.go index 41bc67fc..425e7622 100644 --- a/examples/chain/distribution/query/6_DelegationTotalRewards/example.go +++ b/examples/chain/distribution/query/6_DelegationTotalRewards/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/7_DelegatorValidators/example.go b/examples/chain/distribution/query/7_DelegatorValidators/example.go index 15871af7..d55da034 100644 --- a/examples/chain/distribution/query/7_DelegatorValidators/example.go +++ b/examples/chain/distribution/query/7_DelegatorValidators/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/8_DelegatorWithdrawAddress/example.go b/examples/chain/distribution/query/8_DelegatorWithdrawAddress/example.go index 2862fc22..ad4a71e9 100644 --- a/examples/chain/distribution/query/8_DelegatorWithdrawAddress/example.go +++ b/examples/chain/distribution/query/8_DelegatorWithdrawAddress/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/distribution/query/9_CommunityPool/example.go b/examples/chain/distribution/query/9_CommunityPool/example.go index 83376dcd..ea909a32 100644 --- a/examples/chain/distribution/query/9_CommunityPool/example.go +++ b/examples/chain/distribution/query/9_CommunityPool/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/erc20/1_CreateTokenPair/example.go b/examples/chain/erc20/1_CreateTokenPair/example.go index 093d7b06..d0fb11de 100644 --- a/examples/chain/erc20/1_CreateTokenPair/example.go +++ b/examples/chain/erc20/1_CreateTokenPair/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" erc20types "github.com/InjectiveLabs/sdk-go/chain/erc20/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/erc20/2_DeleteTokenPair/example.go b/examples/chain/erc20/2_DeleteTokenPair/example.go index ad3d66cf..85ebe74e 100644 --- a/examples/chain/erc20/2_DeleteTokenPair/example.go +++ b/examples/chain/erc20/2_DeleteTokenPair/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" erc20types "github.com/InjectiveLabs/sdk-go/chain/erc20/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/erc20/query/1_AllTokenPairs/example.go b/examples/chain/erc20/query/1_AllTokenPairs/example.go index b1114260..63c8a706 100644 --- a/examples/chain/erc20/query/1_AllTokenPairs/example.go +++ b/examples/chain/erc20/query/1_AllTokenPairs/example.go @@ -8,6 +8,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/erc20/query/2_TokenPairByDenom/example.go b/examples/chain/erc20/query/2_TokenPairByDenom/example.go index af95b7bd..a4ad0c74 100644 --- a/examples/chain/erc20/query/2_TokenPairByDenom/example.go +++ b/examples/chain/erc20/query/2_TokenPairByDenom/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/erc20/query/3_TokenPairByERC20Address/example.go b/examples/chain/erc20/query/3_TokenPairByERC20Address/example.go index 3f0ba5b8..e6ec5eca 100644 --- a/examples/chain/erc20/query/3_TokenPairByERC20Address/example.go +++ b/examples/chain/erc20/query/3_TokenPairByERC20Address/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/evm/query/1_Account/example.go b/examples/chain/evm/query/1_Account/example.go index 2e4cac7c..65620545 100644 --- a/examples/chain/evm/query/1_Account/example.go +++ b/examples/chain/evm/query/1_Account/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/evm/query/2_CosmosAccount/example.go b/examples/chain/evm/query/2_CosmosAccount/example.go index 5214e2c7..dba43da8 100644 --- a/examples/chain/evm/query/2_CosmosAccount/example.go +++ b/examples/chain/evm/query/2_CosmosAccount/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/evm/query/3_ValidatorAccount/example.go b/examples/chain/evm/query/3_ValidatorAccount/example.go index 1c4722f0..78b23fd4 100644 --- a/examples/chain/evm/query/3_ValidatorAccount/example.go +++ b/examples/chain/evm/query/3_ValidatorAccount/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/evm/query/4_Balance/example.go b/examples/chain/evm/query/4_Balance/example.go index 8d73c1ac..590f8fd3 100644 --- a/examples/chain/evm/query/4_Balance/example.go +++ b/examples/chain/evm/query/4_Balance/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/evm/query/5_Storage/example.go b/examples/chain/evm/query/5_Storage/example.go index 3e1b5807..ae6c79a0 100644 --- a/examples/chain/evm/query/5_Storage/example.go +++ b/examples/chain/evm/query/5_Storage/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/evm/query/6_Code/example.go b/examples/chain/evm/query/6_Code/example.go index 39b099bb..afbfbd0a 100644 --- a/examples/chain/evm/query/6_Code/example.go +++ b/examples/chain/evm/query/6_Code/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/evm/query/7_BaseFee/example.go b/examples/chain/evm/query/7_BaseFee/example.go index d153f6fe..884fc8c2 100644 --- a/examples/chain/evm/query/7_BaseFee/example.go +++ b/examples/chain/evm/query/7_BaseFee/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go b/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go index 9f2a8c35..67c37dc4 100644 --- a/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go +++ b/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go b/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go index eb4e1805..c4d50093 100644 --- a/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go +++ b/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go b/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go index 015d6713..6e480e20 100644 --- a/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go +++ b/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go b/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go index 896193c4..8effb09a 100644 --- a/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go +++ b/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/14_MsgSubaccountTransfer/example.go b/examples/chain/exchange/14_MsgSubaccountTransfer/example.go index 34b1af1e..7583164b 100644 --- a/examples/chain/exchange/14_MsgSubaccountTransfer/example.go +++ b/examples/chain/exchange/14_MsgSubaccountTransfer/example.go @@ -11,6 +11,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/15_MsgExternalTransfer/example.go b/examples/chain/exchange/15_MsgExternalTransfer/example.go index b6de7e1c..4986efb4 100644 --- a/examples/chain/exchange/15_MsgExternalTransfer/example.go +++ b/examples/chain/exchange/15_MsgExternalTransfer/example.go @@ -11,6 +11,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/16_MsgLiquidatePosition/example.go b/examples/chain/exchange/16_MsgLiquidatePosition/example.go index f4050817..330edff8 100644 --- a/examples/chain/exchange/16_MsgLiquidatePosition/example.go +++ b/examples/chain/exchange/16_MsgLiquidatePosition/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go b/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go index fdaa146f..a705570a 100644 --- a/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go +++ b/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go @@ -10,6 +10,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/1_MsgDeposit/example.go b/examples/chain/exchange/1_MsgDeposit/example.go index 65883a92..df8f493f 100644 --- a/examples/chain/exchange/1_MsgDeposit/example.go +++ b/examples/chain/exchange/1_MsgDeposit/example.go @@ -11,6 +11,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/21_MsgRewardsOptOut/example.go b/examples/chain/exchange/21_MsgRewardsOptOut/example.go index a51afc2c..f08e7a99 100644 --- a/examples/chain/exchange/21_MsgRewardsOptOut/example.go +++ b/examples/chain/exchange/21_MsgRewardsOptOut/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/23_MsgDecreasePositionMargin/example.go b/examples/chain/exchange/23_MsgDecreasePositionMargin/example.go index db233ca9..c90e7e8d 100644 --- a/examples/chain/exchange/23_MsgDecreasePositionMargin/example.go +++ b/examples/chain/exchange/23_MsgDecreasePositionMargin/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/24_MsgUpdateSpotMarket/example.go b/examples/chain/exchange/24_MsgUpdateSpotMarket/example.go index 881a4a48..d0120429 100644 --- a/examples/chain/exchange/24_MsgUpdateSpotMarket/example.go +++ b/examples/chain/exchange/24_MsgUpdateSpotMarket/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go b/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go index 8a1f1656..9f9cde40 100644 --- a/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go +++ b/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/26_MsgAuthorizeStakeGrants/example.go b/examples/chain/exchange/26_MsgAuthorizeStakeGrants/example.go index 63da5c05..88c57fa1 100644 --- a/examples/chain/exchange/26_MsgAuthorizeStakeGrants/example.go +++ b/examples/chain/exchange/26_MsgAuthorizeStakeGrants/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/27_MsgActivateStakeGrant/example.go b/examples/chain/exchange/27_MsgActivateStakeGrant/example.go index 13db512f..d787b667 100644 --- a/examples/chain/exchange/27_MsgActivateStakeGrant/example.go +++ b/examples/chain/exchange/27_MsgActivateStakeGrant/example.go @@ -8,6 +8,7 @@ import ( "time" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/28_MsgCreateGTBSpotLimitOrder/example.go b/examples/chain/exchange/28_MsgCreateGTBSpotLimitOrder/example.go index 6ca43f40..a3339964 100644 --- a/examples/chain/exchange/28_MsgCreateGTBSpotLimitOrder/example.go +++ b/examples/chain/exchange/28_MsgCreateGTBSpotLimitOrder/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/29_MsgCreateGTBDerivativeLimitOrder/example.go b/examples/chain/exchange/29_MsgCreateGTBDerivativeLimitOrder/example.go index 70b8b66a..625b5aba 100644 --- a/examples/chain/exchange/29_MsgCreateGTBDerivativeLimitOrder/example.go +++ b/examples/chain/exchange/29_MsgCreateGTBDerivativeLimitOrder/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/2_MsgWithdraw/example.go b/examples/chain/exchange/2_MsgWithdraw/example.go index 2e36f528..883c1a19 100644 --- a/examples/chain/exchange/2_MsgWithdraw/example.go +++ b/examples/chain/exchange/2_MsgWithdraw/example.go @@ -12,12 +12,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/30_MsgOffsetPosition/example.go b/examples/chain/exchange/30_MsgOffsetPosition/example.go index c2436101..cfc8031b 100644 --- a/examples/chain/exchange/30_MsgOffsetPosition/example.go +++ b/examples/chain/exchange/30_MsgOffsetPosition/example.go @@ -8,6 +8,7 @@ import ( "time" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go b/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go index 59046b4e..76439f81 100644 --- a/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go +++ b/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go b/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go index 9c7c83c1..40c6afd0 100644 --- a/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go +++ b/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go b/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go index ebb760dd..e3551afb 100644 --- a/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go +++ b/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go b/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go index 7d31b06d..7931f282 100644 --- a/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go +++ b/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go b/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go index a0a872ea..d2a426ba 100644 --- a/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go +++ b/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/8_MsgCancelSpotOrder/example.go b/examples/chain/exchange/8_MsgCancelSpotOrder/example.go index 41b7cbf3..2df4abaf 100644 --- a/examples/chain/exchange/8_MsgCancelSpotOrder/example.go +++ b/examples/chain/exchange/8_MsgCancelSpotOrder/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go b/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go index 83b24815..c14689d5 100644 --- a/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go +++ b/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go @@ -10,6 +10,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" "github.com/google/uuid" + "github.com/joho/godotenv" "github.com/shopspring/decimal" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" @@ -18,6 +19,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/10_SpotMarkets/example.go b/examples/chain/exchange/query/10_SpotMarkets/example.go index f786385d..561eb4fc 100644 --- a/examples/chain/exchange/query/10_SpotMarkets/example.go +++ b/examples/chain/exchange/query/10_SpotMarkets/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/11_SpotMarket/example.go b/examples/chain/exchange/query/11_SpotMarket/example.go index 1594b25d..98f06c48 100644 --- a/examples/chain/exchange/query/11_SpotMarket/example.go +++ b/examples/chain/exchange/query/11_SpotMarket/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/12_FullSpotMarkets/example.go b/examples/chain/exchange/query/12_FullSpotMarkets/example.go index b53bd5e4..0a6d7c31 100644 --- a/examples/chain/exchange/query/12_FullSpotMarkets/example.go +++ b/examples/chain/exchange/query/12_FullSpotMarkets/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/13_FullSpotMarket/example.go b/examples/chain/exchange/query/13_FullSpotMarket/example.go index ecc18f6f..4011602a 100644 --- a/examples/chain/exchange/query/13_FullSpotMarket/example.go +++ b/examples/chain/exchange/query/13_FullSpotMarket/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/14_SpotOrderbook/example.go b/examples/chain/exchange/query/14_SpotOrderbook/example.go index 19367afc..80928467 100644 --- a/examples/chain/exchange/query/14_SpotOrderbook/example.go +++ b/examples/chain/exchange/query/14_SpotOrderbook/example.go @@ -8,6 +8,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" v2 "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" "github.com/InjectiveLabs/sdk-go/client" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/15_TraderSpotOrders/example.go b/examples/chain/exchange/query/15_TraderSpotOrders/example.go index cbcd6a69..33556df6 100644 --- a/examples/chain/exchange/query/15_TraderSpotOrders/example.go +++ b/examples/chain/exchange/query/15_TraderSpotOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/16_AccountAddressSpotOrders/example.go b/examples/chain/exchange/query/16_AccountAddressSpotOrders/example.go index a43ffb4c..2d119701 100644 --- a/examples/chain/exchange/query/16_AccountAddressSpotOrders/example.go +++ b/examples/chain/exchange/query/16_AccountAddressSpotOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/17_SpotOrdersByHashes/example.go b/examples/chain/exchange/query/17_SpotOrdersByHashes/example.go index 88c0c805..62be3e14 100644 --- a/examples/chain/exchange/query/17_SpotOrdersByHashes/example.go +++ b/examples/chain/exchange/query/17_SpotOrdersByHashes/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/18_SubaccountOrders/example.go b/examples/chain/exchange/query/18_SubaccountOrders/example.go index 8d9a0f37..28d3faee 100644 --- a/examples/chain/exchange/query/18_SubaccountOrders/example.go +++ b/examples/chain/exchange/query/18_SubaccountOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/19_TraderSpotTransientOrders/example.go b/examples/chain/exchange/query/19_TraderSpotTransientOrders/example.go index 3378897d..d1f00a68 100644 --- a/examples/chain/exchange/query/19_TraderSpotTransientOrders/example.go +++ b/examples/chain/exchange/query/19_TraderSpotTransientOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/1_SubaccountDeposits/example.go b/examples/chain/exchange/query/1_SubaccountDeposits/example.go index f6d67d30..e3ae99b8 100644 --- a/examples/chain/exchange/query/1_SubaccountDeposits/example.go +++ b/examples/chain/exchange/query/1_SubaccountDeposits/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/20_SpotMidPriceAndTOB/example.go b/examples/chain/exchange/query/20_SpotMidPriceAndTOB/example.go index 2687a227..956ee2fc 100644 --- a/examples/chain/exchange/query/20_SpotMidPriceAndTOB/example.go +++ b/examples/chain/exchange/query/20_SpotMidPriceAndTOB/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/21_DerivativeMidPriceAndTOB/example.go b/examples/chain/exchange/query/21_DerivativeMidPriceAndTOB/example.go index e3b54b12..aa6ec4d1 100644 --- a/examples/chain/exchange/query/21_DerivativeMidPriceAndTOB/example.go +++ b/examples/chain/exchange/query/21_DerivativeMidPriceAndTOB/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/22_DerivativeOrderbook/example.go b/examples/chain/exchange/query/22_DerivativeOrderbook/example.go index 19c2e5b2..c21f031c 100644 --- a/examples/chain/exchange/query/22_DerivativeOrderbook/example.go +++ b/examples/chain/exchange/query/22_DerivativeOrderbook/example.go @@ -13,9 +13,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/23_TraderDerivativeOrders/example.go b/examples/chain/exchange/query/23_TraderDerivativeOrders/example.go index 8775951d..e3caa2d7 100644 --- a/examples/chain/exchange/query/23_TraderDerivativeOrders/example.go +++ b/examples/chain/exchange/query/23_TraderDerivativeOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/24_AccountAddressDerivativeOrders/example.go b/examples/chain/exchange/query/24_AccountAddressDerivativeOrders/example.go index 6a9aa97b..617aa8a1 100644 --- a/examples/chain/exchange/query/24_AccountAddressDerivativeOrders/example.go +++ b/examples/chain/exchange/query/24_AccountAddressDerivativeOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/25_DerivativeOrdersByHashes/example.go b/examples/chain/exchange/query/25_DerivativeOrdersByHashes/example.go index 4e6c353d..55e49f48 100644 --- a/examples/chain/exchange/query/25_DerivativeOrdersByHashes/example.go +++ b/examples/chain/exchange/query/25_DerivativeOrdersByHashes/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/26_TraderDerivativeTransientOrders/example.go b/examples/chain/exchange/query/26_TraderDerivativeTransientOrders/example.go index a5213b4e..f56dcbce 100644 --- a/examples/chain/exchange/query/26_TraderDerivativeTransientOrders/example.go +++ b/examples/chain/exchange/query/26_TraderDerivativeTransientOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/27_DerivativeMarkets/example.go b/examples/chain/exchange/query/27_DerivativeMarkets/example.go index e3dbce64..89968b3b 100644 --- a/examples/chain/exchange/query/27_DerivativeMarkets/example.go +++ b/examples/chain/exchange/query/27_DerivativeMarkets/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/28_DerivativeMarket/example.go b/examples/chain/exchange/query/28_DerivativeMarket/example.go index c96a2ac4..983868d9 100644 --- a/examples/chain/exchange/query/28_DerivativeMarket/example.go +++ b/examples/chain/exchange/query/28_DerivativeMarket/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/29_DerivativeMarketAddress/example.go b/examples/chain/exchange/query/29_DerivativeMarketAddress/example.go index 0b74c3e9..948f7153 100644 --- a/examples/chain/exchange/query/29_DerivativeMarketAddress/example.go +++ b/examples/chain/exchange/query/29_DerivativeMarketAddress/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/2_SubaccountDeposit/example.go b/examples/chain/exchange/query/2_SubaccountDeposit/example.go index 379f8b42..f9f51d53 100644 --- a/examples/chain/exchange/query/2_SubaccountDeposit/example.go +++ b/examples/chain/exchange/query/2_SubaccountDeposit/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/30_SubaccountTradeNonce/example.go b/examples/chain/exchange/query/30_SubaccountTradeNonce/example.go index 79e17c12..a0d00122 100644 --- a/examples/chain/exchange/query/30_SubaccountTradeNonce/example.go +++ b/examples/chain/exchange/query/30_SubaccountTradeNonce/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/31_Positions/example.go b/examples/chain/exchange/query/31_Positions/example.go index 548b5ad9..72c0b73b 100644 --- a/examples/chain/exchange/query/31_Positions/example.go +++ b/examples/chain/exchange/query/31_Positions/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/32_SubaccountPositions/example.go b/examples/chain/exchange/query/32_SubaccountPositions/example.go index aae03703..3e5eeed4 100644 --- a/examples/chain/exchange/query/32_SubaccountPositions/example.go +++ b/examples/chain/exchange/query/32_SubaccountPositions/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/33_SubaccountPositionInMarket/example.go b/examples/chain/exchange/query/33_SubaccountPositionInMarket/example.go index 6f629818..85113cd6 100644 --- a/examples/chain/exchange/query/33_SubaccountPositionInMarket/example.go +++ b/examples/chain/exchange/query/33_SubaccountPositionInMarket/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/34_SubaccountEffectivePositionInMarket/example.go b/examples/chain/exchange/query/34_SubaccountEffectivePositionInMarket/example.go index 2c720e7b..88fd80db 100644 --- a/examples/chain/exchange/query/34_SubaccountEffectivePositionInMarket/example.go +++ b/examples/chain/exchange/query/34_SubaccountEffectivePositionInMarket/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/35_PerpetualMarketInfo/example.go b/examples/chain/exchange/query/35_PerpetualMarketInfo/example.go index e499a75d..59aacafc 100644 --- a/examples/chain/exchange/query/35_PerpetualMarketInfo/example.go +++ b/examples/chain/exchange/query/35_PerpetualMarketInfo/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/36_ExpiryFuturesMarketInfo/example.go b/examples/chain/exchange/query/36_ExpiryFuturesMarketInfo/example.go index fbf64153..4ee676b9 100644 --- a/examples/chain/exchange/query/36_ExpiryFuturesMarketInfo/example.go +++ b/examples/chain/exchange/query/36_ExpiryFuturesMarketInfo/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/37_PerpetualMarketFunding/example.go b/examples/chain/exchange/query/37_PerpetualMarketFunding/example.go index 4526a227..fad80973 100644 --- a/examples/chain/exchange/query/37_PerpetualMarketFunding/example.go +++ b/examples/chain/exchange/query/37_PerpetualMarketFunding/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/38_SubaccountOrderMetadata/example.go b/examples/chain/exchange/query/38_SubaccountOrderMetadata/example.go index ee9bcdf3..2357ea5c 100644 --- a/examples/chain/exchange/query/38_SubaccountOrderMetadata/example.go +++ b/examples/chain/exchange/query/38_SubaccountOrderMetadata/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/39_TradeRewardPoints/example.go b/examples/chain/exchange/query/39_TradeRewardPoints/example.go index 0e16188c..03ff521c 100644 --- a/examples/chain/exchange/query/39_TradeRewardPoints/example.go +++ b/examples/chain/exchange/query/39_TradeRewardPoints/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/3_ExchangeBalances/example.go b/examples/chain/exchange/query/3_ExchangeBalances/example.go index a17f6749..d2d18f2c 100644 --- a/examples/chain/exchange/query/3_ExchangeBalances/example.go +++ b/examples/chain/exchange/query/3_ExchangeBalances/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/40_PendingTradeRewardPoints/example.go b/examples/chain/exchange/query/40_PendingTradeRewardPoints/example.go index 9f01e073..fdd204e2 100644 --- a/examples/chain/exchange/query/40_PendingTradeRewardPoints/example.go +++ b/examples/chain/exchange/query/40_PendingTradeRewardPoints/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/41_TradeRewardCampaign/example.go b/examples/chain/exchange/query/41_TradeRewardCampaign/example.go index a9ebb57e..4b358504 100644 --- a/examples/chain/exchange/query/41_TradeRewardCampaign/example.go +++ b/examples/chain/exchange/query/41_TradeRewardCampaign/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/42_FeeDiscountAccountInfo/example.go b/examples/chain/exchange/query/42_FeeDiscountAccountInfo/example.go index 517ddc3a..d3461e53 100644 --- a/examples/chain/exchange/query/42_FeeDiscountAccountInfo/example.go +++ b/examples/chain/exchange/query/42_FeeDiscountAccountInfo/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/43_FeeDiscountSchedule/example.go b/examples/chain/exchange/query/43_FeeDiscountSchedule/example.go index 0437077b..8ee0d248 100644 --- a/examples/chain/exchange/query/43_FeeDiscountSchedule/example.go +++ b/examples/chain/exchange/query/43_FeeDiscountSchedule/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/44_BalanceMismatches/example.go b/examples/chain/exchange/query/44_BalanceMismatches/example.go index 5eafa7fc..98172214 100644 --- a/examples/chain/exchange/query/44_BalanceMismatches/example.go +++ b/examples/chain/exchange/query/44_BalanceMismatches/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/45_BalanceWithBalanceHolds/example.go b/examples/chain/exchange/query/45_BalanceWithBalanceHolds/example.go index 3d8ec7ef..7dad967a 100644 --- a/examples/chain/exchange/query/45_BalanceWithBalanceHolds/example.go +++ b/examples/chain/exchange/query/45_BalanceWithBalanceHolds/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/46_FeeDiscountTierStatistics/example.go b/examples/chain/exchange/query/46_FeeDiscountTierStatistics/example.go index c47f9311..ae5ac228 100644 --- a/examples/chain/exchange/query/46_FeeDiscountTierStatistics/example.go +++ b/examples/chain/exchange/query/46_FeeDiscountTierStatistics/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/47_MitoVaultInfos/example.go b/examples/chain/exchange/query/47_MitoVaultInfos/example.go index 5d77269c..9542ba93 100644 --- a/examples/chain/exchange/query/47_MitoVaultInfos/example.go +++ b/examples/chain/exchange/query/47_MitoVaultInfos/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/48_QueryMarketIDFromVault/example.go b/examples/chain/exchange/query/48_QueryMarketIDFromVault/example.go index 931aa66d..ee6c65a5 100644 --- a/examples/chain/exchange/query/48_QueryMarketIDFromVault/example.go +++ b/examples/chain/exchange/query/48_QueryMarketIDFromVault/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/49_HistoricalTradeRecords/example.go b/examples/chain/exchange/query/49_HistoricalTradeRecords/example.go index 6a20611a..41a452df 100644 --- a/examples/chain/exchange/query/49_HistoricalTradeRecords/example.go +++ b/examples/chain/exchange/query/49_HistoricalTradeRecords/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/4_AggregateVolume/example.go b/examples/chain/exchange/query/4_AggregateVolume/example.go index d5595d58..3699d62d 100644 --- a/examples/chain/exchange/query/4_AggregateVolume/example.go +++ b/examples/chain/exchange/query/4_AggregateVolume/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/50_IsOptedOutOfRewards/example.go b/examples/chain/exchange/query/50_IsOptedOutOfRewards/example.go index fa4d5bf2..fc63b4e2 100644 --- a/examples/chain/exchange/query/50_IsOptedOutOfRewards/example.go +++ b/examples/chain/exchange/query/50_IsOptedOutOfRewards/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/51_OptedOutOfRewardsAccounts/example.go b/examples/chain/exchange/query/51_OptedOutOfRewardsAccounts/example.go index bfd8f00b..0107f9cb 100644 --- a/examples/chain/exchange/query/51_OptedOutOfRewardsAccounts/example.go +++ b/examples/chain/exchange/query/51_OptedOutOfRewardsAccounts/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/52_MarketVolatility/example.go b/examples/chain/exchange/query/52_MarketVolatility/example.go index d2c2e899..aa9b80b6 100644 --- a/examples/chain/exchange/query/52_MarketVolatility/example.go +++ b/examples/chain/exchange/query/52_MarketVolatility/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" "github.com/InjectiveLabs/sdk-go/client" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/53_BinaryOptionsMarkets/example.go b/examples/chain/exchange/query/53_BinaryOptionsMarkets/example.go index dda07458..4b40be26 100644 --- a/examples/chain/exchange/query/53_BinaryOptionsMarkets/example.go +++ b/examples/chain/exchange/query/53_BinaryOptionsMarkets/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/54_TraderDerivativeConditionalOrders/example.go b/examples/chain/exchange/query/54_TraderDerivativeConditionalOrders/example.go index 417b010b..f46bdff7 100644 --- a/examples/chain/exchange/query/54_TraderDerivativeConditionalOrders/example.go +++ b/examples/chain/exchange/query/54_TraderDerivativeConditionalOrders/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/55_MarketAtomicExecutionFeeMultiplier/example.go b/examples/chain/exchange/query/55_MarketAtomicExecutionFeeMultiplier/example.go index 477bdc4e..cb946991 100644 --- a/examples/chain/exchange/query/55_MarketAtomicExecutionFeeMultiplier/example.go +++ b/examples/chain/exchange/query/55_MarketAtomicExecutionFeeMultiplier/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/56_ActivateStakeGrant/example.go b/examples/chain/exchange/query/56_ActivateStakeGrant/example.go index 46cb5ae1..449e5b16 100644 --- a/examples/chain/exchange/query/56_ActivateStakeGrant/example.go +++ b/examples/chain/exchange/query/56_ActivateStakeGrant/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/57_GrantAuthorization/example.go b/examples/chain/exchange/query/57_GrantAuthorization/example.go index cec4f561..0831f36f 100644 --- a/examples/chain/exchange/query/57_GrantAuthorization/example.go +++ b/examples/chain/exchange/query/57_GrantAuthorization/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/57_GrantAuthorization/injective_data/ofac.json b/examples/chain/exchange/query/57_GrantAuthorization/injective_data/ofac.json deleted file mode 100644 index 3035ea42..00000000 --- a/examples/chain/exchange/query/57_GrantAuthorization/injective_data/ofac.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - "0x04dba1194ee10112fe6c3207c0687def0e78bacf", - "0x08723392ed15743cc38513c4925f5e6be5c17243", - "0x08b2efdcdb8822efe5ad0eae55517cf5dc544251", - "0x0931ca4d13bb4ba75d9b7132ab690265d749a5e7", - "0x098b716b8aaf21512996dc57eb0615e2383e2f96", - "0x0ee5067b06776a89ccc7dc8ee369984ad7db5e06", - "0x175d44451403edf28469df03a9280c1197adb92c", - "0x1967d8af5bd86a497fb3dd7899a020e47560daaf", - "0x1999ef52700c34de7ec2b68a28aafb37db0c5ade", - "0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff", - "0x19f8f2b0915daa12a3f5c9cf01df9e24d53794f7", - "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a", - "0x21b8d56bda776bbe68655a16895afd96f5534fed", - "0x2f389ce8bd8ff92de3402ffce4691d17fc4f6535", - "0x308ed4b7b49797e1a98d3818bff6fe5385410370", - "0x35fb6f6db4fb05e6a4ce86f2c93691425626d4b1", - "0x38735f03b30fbc022ddd06abed01f0ca823c6a94", - "0x39d908dac893cbcb53cc86e0ecc369aa4def1a29", - "0x3ad9db589d201a710ed237c829c7860ba86510fc", - "0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d", - "0x3cffd56b47b7b41c56258d9c7731abadc360e073", - "0x3e37627deaa754090fbfbb8bd226c1ce66d255e9", - "0x43fa21d92141ba9db43052492e0deee5aa5f0a93", - "0x48549a34ae37b12f6a30566245176994e17c6b4a", - "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c", - "0x502371699497d08d5339c870851898d6d72521dd", - "0x530a64c0ce595026a4a556b703644228179e2d57", - "0x53b6936513e738f44fb50d2b9476730c0ab3bfc1", - "0x5512d943ed1f7c8a43f3435c85f7ab68b30121b0", - "0x5a14e72060c11313e38738009254a90968f58f51", - "0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f", - "0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2", - "0x67d40ee1a85bf4a4bb7ffae16de985e8427b6b45", - "0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e", - "0x6f1ca141a28907f78ebaa64fb83a9088b02a8352", - "0x72a5843cc08275c8171e582972aa4fda8c397b2a", - "0x797d7ae72ebddcdea2a346c1834e04d1f8df102b", - "0x7db418b5d567a4e0e8c59ad71be1fce48f3e6107", - "0x7f19720a857f834887fc9a7bc0a0fbe7fc7f8102", - "0x7f367cc41522ce07553e823bf3be79a889debe1b", - "0x7ff9cfad3877f21d41da833e2f775db0569ee3d9", - "0x83e5bc4ffa856bb84bb88581f5dd62a433a25e0d", - "0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c", - "0x901bb9583b24d97e995513c6778dc6888ab6870e", - "0x931546d9e66836abf687d2bc64b30407bac8c568", - "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1", - "0x97b1043abd9e6fc31681635166d430a458d14f9c", - "0x983a81ca6fb1e441266d2fbcb7d8e530ac2e05a2", - "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa", - "0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9", - "0xa0e1c89ef1a489c9c7de96311ed5ce5d32c20e4b", - "0xa7e5d5a720f06526557c513402f2e6b5fa20b008", - "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", - "0xc2a3829f459b3edd87791c74cd45402ba0a20be3", - "0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a", - "0xd0975b32cea532eadddfc9c60481976e39db3472", - "0xd5ed34b52ac4ab84d8fa8a231a3218bbf01ed510", - "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b", - "0xdcbeffbecce100cce9e4b153c4e15cb885643193", - "0xe1d865c3d669dcc8c57c8d023140cb204e672ee4", - "0xe7aa314c77f4233c18c6cc84384a9247c0cf367b", - "0xe950dc316b836e4eefb8308bf32bf7c72a1358ff", - "0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921", - "0xefe301d259f525ca1ba74a7977b80d5b060b3cca", - "0xf3701f445b6bdafedbca97d1e477357839e4120d", - "0xf7b31119c2682c88d88d455dbb9d5932c65cf1be", - "0xfac583c0cf07ea434052c49115a4682172ab6b4f", - "0xfec8a60023265364d066a1212fde3930f6ae8da7", - "0xc5801cd781d168e2d3899ad9c39d8a2541871298", - "0x0992E2D17e0082Df8a31Bf36Bd8Cc662551de68B", - "0x8aa07899eb940f40e514b8effdb3b6af5d1cf7bb", - "0xb9436d76e8fe08859d042e41b4a21c85715e1176", - "0x7bc5cb059f21553af489d2b2df3d40aaae9b44e8", - "0x430ab3c698b3210548b6ac9f72936b43b15ebe9b" -] diff --git a/examples/chain/exchange/query/58_GrantAuthorizations/example.go b/examples/chain/exchange/query/58_GrantAuthorizations/example.go index 995827d7..0bdcb4e1 100644 --- a/examples/chain/exchange/query/58_GrantAuthorizations/example.go +++ b/examples/chain/exchange/query/58_GrantAuthorizations/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/59_MarketBalance/example.go b/examples/chain/exchange/query/59_MarketBalance/example.go index 4cb0c6f6..4ff35bb0 100644 --- a/examples/chain/exchange/query/59_MarketBalance/example.go +++ b/examples/chain/exchange/query/59_MarketBalance/example.go @@ -8,6 +8,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/5_AggregateVolumes/example.go b/examples/chain/exchange/query/5_AggregateVolumes/example.go index 37ab3c41..487f8121 100644 --- a/examples/chain/exchange/query/5_AggregateVolumes/example.go +++ b/examples/chain/exchange/query/5_AggregateVolumes/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/60_MarketBalances/example.go b/examples/chain/exchange/query/60_MarketBalances/example.go index 6fb69911..07997297 100644 --- a/examples/chain/exchange/query/60_MarketBalances/example.go +++ b/examples/chain/exchange/query/60_MarketBalances/example.go @@ -8,6 +8,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/61_DenomMinNotional/example.go b/examples/chain/exchange/query/61_DenomMinNotional/example.go index 7aa31aff..07628072 100644 --- a/examples/chain/exchange/query/61_DenomMinNotional/example.go +++ b/examples/chain/exchange/query/61_DenomMinNotional/example.go @@ -8,6 +8,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/62_DenomMinNotionals/example.go b/examples/chain/exchange/query/62_DenomMinNotionals/example.go index 5c8c4cc4..0d9941ef 100644 --- a/examples/chain/exchange/query/62_DenomMinNotionals/example.go +++ b/examples/chain/exchange/query/62_DenomMinNotionals/example.go @@ -8,6 +8,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/63_L3DerivativeOrderBook/example.go b/examples/chain/exchange/query/63_L3DerivativeOrderBook/example.go index 5c814d13..825cb210 100644 --- a/examples/chain/exchange/query/63_L3DerivativeOrderBook/example.go +++ b/examples/chain/exchange/query/63_L3DerivativeOrderBook/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/64_L3SpotOrderBook/example.go b/examples/chain/exchange/query/64_L3SpotOrderBook/example.go index e64890f7..1c92c17d 100644 --- a/examples/chain/exchange/query/64_L3SpotOrderBook/example.go +++ b/examples/chain/exchange/query/64_L3SpotOrderBook/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/65_PositionsInMarket/example.go b/examples/chain/exchange/query/65_PositionsInMarket/example.go index 0690353d..3176cbb6 100644 --- a/examples/chain/exchange/query/65_PositionsInMarket/example.go +++ b/examples/chain/exchange/query/65_PositionsInMarket/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/66_OpenInterest/example.go b/examples/chain/exchange/query/66_OpenInterest/example.go index a8601b4b..d9a82638 100644 --- a/examples/chain/exchange/query/66_OpenInterest/example.go +++ b/examples/chain/exchange/query/66_OpenInterest/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/6_AggregateMarketVolume/example.go b/examples/chain/exchange/query/6_AggregateMarketVolume/example.go index fdf97d3b..eeb9cb29 100644 --- a/examples/chain/exchange/query/6_AggregateMarketVolume/example.go +++ b/examples/chain/exchange/query/6_AggregateMarketVolume/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/7_AggregateMarketVolumes/example.go b/examples/chain/exchange/query/7_AggregateMarketVolumes/example.go index a46336bc..8be5ad02 100644 --- a/examples/chain/exchange/query/7_AggregateMarketVolumes/example.go +++ b/examples/chain/exchange/query/7_AggregateMarketVolumes/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/8_AuctionExchangeTransferDenomDecimal/example.go b/examples/chain/exchange/query/8_AuctionExchangeTransferDenomDecimal/example.go index 80e6c925..56245afc 100644 --- a/examples/chain/exchange/query/8_AuctionExchangeTransferDenomDecimal/example.go +++ b/examples/chain/exchange/query/8_AuctionExchangeTransferDenomDecimal/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/exchange/query/9_AuctionExchangeTransferDenomDecimals/example.go b/examples/chain/exchange/query/9_AuctionExchangeTransferDenomDecimals/example.go index 0b7f05c6..11e9db46 100644 --- a/examples/chain/exchange/query/9_AuctionExchangeTransferDenomDecimals/example.go +++ b/examples/chain/exchange/query/9_AuctionExchangeTransferDenomDecimals/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/10_PacketAcknowledgements/example.go b/examples/chain/ibc/channel/query/10_PacketAcknowledgements/example.go index 515bda4d..3de0da90 100644 --- a/examples/chain/ibc/channel/query/10_PacketAcknowledgements/example.go +++ b/examples/chain/ibc/channel/query/10_PacketAcknowledgements/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/11_UnreceivedPackets/example.go b/examples/chain/ibc/channel/query/11_UnreceivedPackets/example.go index 1ecff92a..dcdd77ab 100644 --- a/examples/chain/ibc/channel/query/11_UnreceivedPackets/example.go +++ b/examples/chain/ibc/channel/query/11_UnreceivedPackets/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/12_UnreceivedAcks/example.go b/examples/chain/ibc/channel/query/12_UnreceivedAcks/example.go index 5476eaf5..fa984472 100644 --- a/examples/chain/ibc/channel/query/12_UnreceivedAcks/example.go +++ b/examples/chain/ibc/channel/query/12_UnreceivedAcks/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/13_NextSequenceReceive/example.go b/examples/chain/ibc/channel/query/13_NextSequenceReceive/example.go index fbbac746..4a4068c1 100644 --- a/examples/chain/ibc/channel/query/13_NextSequenceReceive/example.go +++ b/examples/chain/ibc/channel/query/13_NextSequenceReceive/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/1_Channel/example.go b/examples/chain/ibc/channel/query/1_Channel/example.go index 785f24c3..55319b2a 100644 --- a/examples/chain/ibc/channel/query/1_Channel/example.go +++ b/examples/chain/ibc/channel/query/1_Channel/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/2_Channels/example.go b/examples/chain/ibc/channel/query/2_Channels/example.go index 18750a4d..8c693a80 100644 --- a/examples/chain/ibc/channel/query/2_Channels/example.go +++ b/examples/chain/ibc/channel/query/2_Channels/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/3_ConnectionChannels/example.go b/examples/chain/ibc/channel/query/3_ConnectionChannels/example.go index e0e3f081..8140459f 100644 --- a/examples/chain/ibc/channel/query/3_ConnectionChannels/example.go +++ b/examples/chain/ibc/channel/query/3_ConnectionChannels/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/4_ChannelClientState/example.go b/examples/chain/ibc/channel/query/4_ChannelClientState/example.go index 24c9e3a9..34717971 100644 --- a/examples/chain/ibc/channel/query/4_ChannelClientState/example.go +++ b/examples/chain/ibc/channel/query/4_ChannelClientState/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/5_ChannelConsensusState/example.go b/examples/chain/ibc/channel/query/5_ChannelConsensusState/example.go index 3a2ee4ea..186667c8 100644 --- a/examples/chain/ibc/channel/query/5_ChannelConsensusState/example.go +++ b/examples/chain/ibc/channel/query/5_ChannelConsensusState/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/6_PacketCommitment/example.go b/examples/chain/ibc/channel/query/6_PacketCommitment/example.go index 1a85ba67..f3fb7e83 100644 --- a/examples/chain/ibc/channel/query/6_PacketCommitment/example.go +++ b/examples/chain/ibc/channel/query/6_PacketCommitment/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/7_PacketCommitments/example.go b/examples/chain/ibc/channel/query/7_PacketCommitments/example.go index 5da3b2f5..8162cff1 100644 --- a/examples/chain/ibc/channel/query/7_PacketCommitments/example.go +++ b/examples/chain/ibc/channel/query/7_PacketCommitments/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/8_PacketReceipt/example.go b/examples/chain/ibc/channel/query/8_PacketReceipt/example.go index f547d889..133e7a54 100644 --- a/examples/chain/ibc/channel/query/8_PacketReceipt/example.go +++ b/examples/chain/ibc/channel/query/8_PacketReceipt/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/channel/query/9_PacketAcknowledgement/example.go b/examples/chain/ibc/channel/query/9_PacketAcknowledgement/example.go index 42c7fd46..9c5dd85f 100644 --- a/examples/chain/ibc/channel/query/9_PacketAcknowledgement/example.go +++ b/examples/chain/ibc/channel/query/9_PacketAcknowledgement/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/1_ClientState/example.go b/examples/chain/ibc/client/query/1_ClientState/example.go index 2a8b0ac2..73bee7ca 100644 --- a/examples/chain/ibc/client/query/1_ClientState/example.go +++ b/examples/chain/ibc/client/query/1_ClientState/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/2_ClientStates/example.go b/examples/chain/ibc/client/query/2_ClientStates/example.go index c38dbb7b..e89b4322 100644 --- a/examples/chain/ibc/client/query/2_ClientStates/example.go +++ b/examples/chain/ibc/client/query/2_ClientStates/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/3_ConsensusState/example.go b/examples/chain/ibc/client/query/3_ConsensusState/example.go index 1049473b..21dabc8f 100644 --- a/examples/chain/ibc/client/query/3_ConsensusState/example.go +++ b/examples/chain/ibc/client/query/3_ConsensusState/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/4_ConsensusStates/example.go b/examples/chain/ibc/client/query/4_ConsensusStates/example.go index bd856cc1..c54376a5 100644 --- a/examples/chain/ibc/client/query/4_ConsensusStates/example.go +++ b/examples/chain/ibc/client/query/4_ConsensusStates/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/5_ConsensusStateHeight/example.go b/examples/chain/ibc/client/query/5_ConsensusStateHeight/example.go index f97572f1..b7536173 100644 --- a/examples/chain/ibc/client/query/5_ConsensusStateHeight/example.go +++ b/examples/chain/ibc/client/query/5_ConsensusStateHeight/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/6_ClientStatus/example.go b/examples/chain/ibc/client/query/6_ClientStatus/example.go index 94924f47..c08c8f09 100644 --- a/examples/chain/ibc/client/query/6_ClientStatus/example.go +++ b/examples/chain/ibc/client/query/6_ClientStatus/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/7_ClientParams/example.go b/examples/chain/ibc/client/query/7_ClientParams/example.go index f94f7a19..a584fe44 100644 --- a/examples/chain/ibc/client/query/7_ClientParams/example.go +++ b/examples/chain/ibc/client/query/7_ClientParams/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/8_UpgradedClientState/example.go b/examples/chain/ibc/client/query/8_UpgradedClientState/example.go index cc677245..6a22688f 100644 --- a/examples/chain/ibc/client/query/8_UpgradedClientState/example.go +++ b/examples/chain/ibc/client/query/8_UpgradedClientState/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/client/query/9_UpgradedConsensusState/example.go b/examples/chain/ibc/client/query/9_UpgradedConsensusState/example.go index a8652d60..3d38cd57 100644 --- a/examples/chain/ibc/client/query/9_UpgradedConsensusState/example.go +++ b/examples/chain/ibc/client/query/9_UpgradedConsensusState/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/connection/query/1_Connection/example.go b/examples/chain/ibc/connection/query/1_Connection/example.go index 47b686d0..fadabccb 100644 --- a/examples/chain/ibc/connection/query/1_Connection/example.go +++ b/examples/chain/ibc/connection/query/1_Connection/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/connection/query/2_Connections/example.go b/examples/chain/ibc/connection/query/2_Connections/example.go index 58a5e0e8..d1a7b1ea 100644 --- a/examples/chain/ibc/connection/query/2_Connections/example.go +++ b/examples/chain/ibc/connection/query/2_Connections/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/connection/query/3_ClientConnections/example.go b/examples/chain/ibc/connection/query/3_ClientConnections/example.go index 229a5f80..63a1012c 100644 --- a/examples/chain/ibc/connection/query/3_ClientConnections/example.go +++ b/examples/chain/ibc/connection/query/3_ClientConnections/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/connection/query/4_ConnectionClientState/example.go b/examples/chain/ibc/connection/query/4_ConnectionClientState/example.go index 7cfedc41..f70f4f3a 100644 --- a/examples/chain/ibc/connection/query/4_ConnectionClientState/example.go +++ b/examples/chain/ibc/connection/query/4_ConnectionClientState/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/connection/query/5_ConnectionConsensusState/example.go b/examples/chain/ibc/connection/query/5_ConnectionConsensusState/example.go index df139592..727b166d 100644 --- a/examples/chain/ibc/connection/query/5_ConnectionConsensusState/example.go +++ b/examples/chain/ibc/connection/query/5_ConnectionConsensusState/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/connection/query/6_ConnectionParams/example.go b/examples/chain/ibc/connection/query/6_ConnectionParams/example.go index f559ff05..59c7df0a 100644 --- a/examples/chain/ibc/connection/query/6_ConnectionParams/example.go +++ b/examples/chain/ibc/connection/query/6_ConnectionParams/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/transfer/1_MsgTransfer/example.go b/examples/chain/ibc/transfer/1_MsgTransfer/example.go index 2777447e..30f98b31 100644 --- a/examples/chain/ibc/transfer/1_MsgTransfer/example.go +++ b/examples/chain/ibc/transfer/1_MsgTransfer/example.go @@ -12,12 +12,14 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" ibccoretypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/transfer/query/1_DenomTrace/example.go b/examples/chain/ibc/transfer/query/1_DenomTrace/example.go index cb5652b6..c8c731d0 100644 --- a/examples/chain/ibc/transfer/query/1_DenomTrace/example.go +++ b/examples/chain/ibc/transfer/query/1_DenomTrace/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/transfer/query/2_DenomTraces/example.go b/examples/chain/ibc/transfer/query/2_DenomTraces/example.go index 468740b4..5c992207 100644 --- a/examples/chain/ibc/transfer/query/2_DenomTraces/example.go +++ b/examples/chain/ibc/transfer/query/2_DenomTraces/example.go @@ -7,6 +7,7 @@ import ( "github.com/InjectiveLabs/sdk-go/client" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/transfer/query/3_DenomHash/example.go b/examples/chain/ibc/transfer/query/3_DenomHash/example.go index 040b123d..53e5f0cc 100644 --- a/examples/chain/ibc/transfer/query/3_DenomHash/example.go +++ b/examples/chain/ibc/transfer/query/3_DenomHash/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/transfer/query/4_EscrowAddress/example.go b/examples/chain/ibc/transfer/query/4_EscrowAddress/example.go index f7197cd2..878fe8cd 100644 --- a/examples/chain/ibc/transfer/query/4_EscrowAddress/example.go +++ b/examples/chain/ibc/transfer/query/4_EscrowAddress/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/ibc/transfer/query/5_TotalEscrowForDenom/example.go b/examples/chain/ibc/transfer/query/5_TotalEscrowForDenom/example.go index 983d25de..ea11b855 100644 --- a/examples/chain/ibc/transfer/query/5_TotalEscrowForDenom/example.go +++ b/examples/chain/ibc/transfer/query/5_TotalEscrowForDenom/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/InjectiveLabs/sdk-go/client" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/insurance/1_MsgClaimVoucher/example.go b/examples/chain/insurance/1_MsgClaimVoucher/example.go new file mode 100644 index 00000000..b11e1a57 --- /dev/null +++ b/examples/chain/insurance/1_MsgClaimVoucher/example.go @@ -0,0 +1,88 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + "time" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" + + insurancetypes "github.com/InjectiveLabs/sdk-go/chain/insurance/types" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + _ = godotenv.Load() + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + ) + + if err != nil { + panic(err) + } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + gasPrice := chainClient.CurrentChainGasPrice(ctx) + gasPrice = int64(float64(gasPrice) * 1.1) + chainClient.SetGasPrice(gasPrice) + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + msg := &insurancetypes.MsgClaimVoucher{ + Sender: senderAddress.String(), + Denom: denom, + } + + _, response, err := chainClient.BroadcastMsg(ctx, txtypes.BroadcastMode_BROADCAST_MODE_SYNC, msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", "\t") + fmt.Print(string(str)) + + gasPrice = chainClient.CurrentChainGasPrice(ctx) + gasPrice = int64(float64(gasPrice) * 1.1) + chainClient.SetGasPrice(gasPrice) +} diff --git a/examples/chain/insurance/query/1_Vouchers/example.go b/examples/chain/insurance/query/1_Vouchers/example.go new file mode 100644 index 00000000..e1dd3ad4 --- /dev/null +++ b/examples/chain/insurance/query/1_Vouchers/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + _ = godotenv.Load() + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + res, err := chainClient.FetchInsuranceVouchers(ctx, denom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", "\t") + fmt.Print(string(str)) +} diff --git a/examples/chain/insurance/query/2_Voucher/example.go b/examples/chain/insurance/query/2_Voucher/example.go new file mode 100644 index 00000000..419001fb --- /dev/null +++ b/examples/chain/insurance/query/2_Voucher/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" +) + +func main() { + _ = godotenv.Load() + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + address := "inj1knhahceyp57j5x7xh69p7utegnnnfgxavmahjr" + + res, err := chainClient.FetchInsuranceVoucher(ctx, denom, address) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", "\t") + fmt.Print(string(str)) +} diff --git a/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go b/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go index 7d198a7f..387df7c8 100644 --- a/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go +++ b/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go @@ -9,6 +9,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/peggy/1_MsgSendToEth/example.go b/examples/chain/peggy/1_MsgSendToEth/example.go index 14950069..1b39d97f 100644 --- a/examples/chain/peggy/1_MsgSendToEth/example.go +++ b/examples/chain/peggy/1_MsgSendToEth/example.go @@ -12,12 +12,14 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" peggytypes "github.com/InjectiveLabs/sdk-go/chain/peggy/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/1_MsgCreateNamespace/example.go b/examples/chain/permissions/1_MsgCreateNamespace/example.go index ce0c9526..e16e150f 100644 --- a/examples/chain/permissions/1_MsgCreateNamespace/example.go +++ b/examples/chain/permissions/1_MsgCreateNamespace/example.go @@ -8,6 +8,7 @@ import ( "time" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/2_MsgUpdateNamespace/example.go b/examples/chain/permissions/2_MsgUpdateNamespace/example.go index a2b7533a..9417073d 100644 --- a/examples/chain/permissions/2_MsgUpdateNamespace/example.go +++ b/examples/chain/permissions/2_MsgUpdateNamespace/example.go @@ -8,6 +8,7 @@ import ( "time" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/3_MsgUpdateActorRoles/example.go b/examples/chain/permissions/3_MsgUpdateActorRoles/example.go index 31232890..27ac9e95 100644 --- a/examples/chain/permissions/3_MsgUpdateActorRoles/example.go +++ b/examples/chain/permissions/3_MsgUpdateActorRoles/example.go @@ -10,12 +10,14 @@ import ( "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/4_MsgClaimVoucher/example.go b/examples/chain/permissions/4_MsgClaimVoucher/example.go index b27aca0f..d21bf39b 100644 --- a/examples/chain/permissions/4_MsgClaimVoucher/example.go +++ b/examples/chain/permissions/4_MsgClaimVoucher/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" txtypes "github.com/cosmos/cosmos-sdk/types/tx" + "github.com/joho/godotenv" permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/10_Vouchers/example.go b/examples/chain/permissions/query/10_Vouchers/example.go index 07957a18..3b9745b7 100644 --- a/examples/chain/permissions/query/10_Vouchers/example.go +++ b/examples/chain/permissions/query/10_Vouchers/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/11_Voucher/example.go b/examples/chain/permissions/query/11_Voucher/example.go index c3afa7ec..855b906d 100644 --- a/examples/chain/permissions/query/11_Voucher/example.go +++ b/examples/chain/permissions/query/11_Voucher/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/12_PermissionsModuleState/example.go b/examples/chain/permissions/query/12_PermissionsModuleState/example.go index 3cb4f87b..5a303fb9 100644 --- a/examples/chain/permissions/query/12_PermissionsModuleState/example.go +++ b/examples/chain/permissions/query/12_PermissionsModuleState/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/1_NamespaceDenoms/example.go b/examples/chain/permissions/query/1_NamespaceDenoms/example.go index 9e87957d..9205479f 100644 --- a/examples/chain/permissions/query/1_NamespaceDenoms/example.go +++ b/examples/chain/permissions/query/1_NamespaceDenoms/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/2_Namespaces/example.go b/examples/chain/permissions/query/2_Namespaces/example.go index dcad9da8..b74054b2 100644 --- a/examples/chain/permissions/query/2_Namespaces/example.go +++ b/examples/chain/permissions/query/2_Namespaces/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/3_Namespace/example.go b/examples/chain/permissions/query/3_Namespace/example.go index 401053ce..84d5c442 100644 --- a/examples/chain/permissions/query/3_Namespace/example.go +++ b/examples/chain/permissions/query/3_Namespace/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/4_RolesByActor/example.go b/examples/chain/permissions/query/4_RolesByActor/example.go index c64b2087..661ca340 100644 --- a/examples/chain/permissions/query/4_RolesByActor/example.go +++ b/examples/chain/permissions/query/4_RolesByActor/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/5_ActorsByRole/example.go b/examples/chain/permissions/query/5_ActorsByRole/example.go index 97a64196..d55351a3 100644 --- a/examples/chain/permissions/query/5_ActorsByRole/example.go +++ b/examples/chain/permissions/query/5_ActorsByRole/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/6_RoleManagers/example.go b/examples/chain/permissions/query/6_RoleManagers/example.go index a2f5b657..ed42cf32 100644 --- a/examples/chain/permissions/query/6_RoleManagers/example.go +++ b/examples/chain/permissions/query/6_RoleManagers/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/7_RoleManager/example.go b/examples/chain/permissions/query/7_RoleManager/example.go index 86a683b0..54526682 100644 --- a/examples/chain/permissions/query/7_RoleManager/example.go +++ b/examples/chain/permissions/query/7_RoleManager/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/8_PolicyStatuses/example.go b/examples/chain/permissions/query/8_PolicyStatuses/example.go index d8bba230..c7abbf4f 100644 --- a/examples/chain/permissions/query/8_PolicyStatuses/example.go +++ b/examples/chain/permissions/query/8_PolicyStatuses/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go b/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go index d8bba230..c7abbf4f 100644 --- a/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go +++ b/examples/chain/permissions/query/9_PolicyManagerCapabilities/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/staking/1_MsgDelegate/example.go b/examples/chain/staking/1_MsgDelegate/example.go index 3b76e438..9a896fc2 100644 --- a/examples/chain/staking/1_MsgDelegate/example.go +++ b/examples/chain/staking/1_MsgDelegate/example.go @@ -12,12 +12,14 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" txtypes "github.com/cosmos/cosmos-sdk/types/tx" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/joho/godotenv" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -30,7 +32,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tendermint/query/1_GetNodeInfo/example.go b/examples/chain/tendermint/query/1_GetNodeInfo/example.go index 895a8034..da3c9670 100644 --- a/examples/chain/tendermint/query/1_GetNodeInfo/example.go +++ b/examples/chain/tendermint/query/1_GetNodeInfo/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tendermint/query/2_GetSyncing/example.go b/examples/chain/tendermint/query/2_GetSyncing/example.go index 2d459fd5..b2ead8c4 100644 --- a/examples/chain/tendermint/query/2_GetSyncing/example.go +++ b/examples/chain/tendermint/query/2_GetSyncing/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tendermint/query/3_GetLatestBlock/example.go b/examples/chain/tendermint/query/3_GetLatestBlock/example.go index 37c6a60b..e61ef36a 100644 --- a/examples/chain/tendermint/query/3_GetLatestBlock/example.go +++ b/examples/chain/tendermint/query/3_GetLatestBlock/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("devnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tendermint/query/4_GetBlockByHeight/example.go b/examples/chain/tendermint/query/4_GetBlockByHeight/example.go index 99a58647..a4adaf2a 100644 --- a/examples/chain/tendermint/query/4_GetBlockByHeight/example.go +++ b/examples/chain/tendermint/query/4_GetBlockByHeight/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tendermint/query/5_GetLatestValidatorSet/example.go b/examples/chain/tendermint/query/5_GetLatestValidatorSet/example.go index ec89f6e0..b8a6ea69 100644 --- a/examples/chain/tendermint/query/5_GetLatestValidatorSet/example.go +++ b/examples/chain/tendermint/query/5_GetLatestValidatorSet/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tendermint/query/6_GetValidatorSetByHeight/example.go b/examples/chain/tendermint/query/6_GetValidatorSetByHeight/example.go index 1dab2838..98f945de 100644 --- a/examples/chain/tendermint/query/6_GetValidatorSetByHeight/example.go +++ b/examples/chain/tendermint/query/6_GetValidatorSetByHeight/example.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/1_CreateDenom/example.go b/examples/chain/tokenfactory/1_CreateDenom/example.go index 2c42685d..5e0772c0 100644 --- a/examples/chain/tokenfactory/1_CreateDenom/example.go +++ b/examples/chain/tokenfactory/1_CreateDenom/example.go @@ -8,6 +8,7 @@ import ( "time" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/2_MsgMint/example.go b/examples/chain/tokenfactory/2_MsgMint/example.go index 89a7659b..99ebb17a 100644 --- a/examples/chain/tokenfactory/2_MsgMint/example.go +++ b/examples/chain/tokenfactory/2_MsgMint/example.go @@ -10,6 +10,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" + "github.com/joho/godotenv" tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/3_MsgBurn/example.go b/examples/chain/tokenfactory/3_MsgBurn/example.go index c3e1d211..5e0b472e 100644 --- a/examples/chain/tokenfactory/3_MsgBurn/example.go +++ b/examples/chain/tokenfactory/3_MsgBurn/example.go @@ -10,6 +10,7 @@ import ( "cosmossdk.io/math" rpchttp "github.com/cometbft/cometbft/rpc/client/http" sdktypes "github.com/cosmos/cosmos-sdk/types" + "github.com/joho/godotenv" tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go b/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go index 49d6061e..56285b53 100644 --- a/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go +++ b/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go @@ -9,6 +9,7 @@ import ( rpchttp "github.com/cometbft/cometbft/rpc/client/http" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/joho/godotenv" tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go b/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go index 79510c07..8a0076b0 100644 --- a/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go +++ b/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go @@ -8,6 +8,7 @@ import ( "time" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/query/1_DenomAuthorityMetadata/example.go b/examples/chain/tokenfactory/query/1_DenomAuthorityMetadata/example.go index 6763fbf8..fd06a70d 100644 --- a/examples/chain/tokenfactory/query/1_DenomAuthorityMetadata/example.go +++ b/examples/chain/tokenfactory/query/1_DenomAuthorityMetadata/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/query/2_DenomsFromCreator/example.go b/examples/chain/tokenfactory/query/2_DenomsFromCreator/example.go index f7086bee..7704cd20 100644 --- a/examples/chain/tokenfactory/query/2_DenomsFromCreator/example.go +++ b/examples/chain/tokenfactory/query/2_DenomsFromCreator/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tokenfactory/query/3_TokenfactoryModuleState/example.go b/examples/chain/tokenfactory/query/3_TokenfactoryModuleState/example.go index 8a9c2b6f..253e832f 100644 --- a/examples/chain/tokenfactory/query/3_TokenfactoryModuleState/example.go +++ b/examples/chain/tokenfactory/query/3_TokenfactoryModuleState/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/tx/query/1_GetTx/example.go b/examples/chain/tx/query/1_GetTx/example.go index b41d0e4f..a2ef6199 100644 --- a/examples/chain/tx/query/1_GetTx/example.go +++ b/examples/chain/tx/query/1_GetTx/example.go @@ -8,6 +8,7 @@ import ( "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" + "github.com/joho/godotenv" rpchttp "github.com/cometbft/cometbft/rpc/client/http" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("mainnet", "lb") tmRPC, err := rpchttp.New(network.TmEndpoint) @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/txfees/query/1_GetEipBaseFee/example.go b/examples/chain/txfees/query/1_GetEipBaseFee/example.go index 6a4a3c9f..828a3a6e 100644 --- a/examples/chain/txfees/query/1_GetEipBaseFee/example.go +++ b/examples/chain/txfees/query/1_GetEipBaseFee/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -14,6 +15,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/10_ContractsByCreator/example.go b/examples/chain/wasm/query/10_ContractsByCreator/example.go index 9fb964c5..264098b8 100644 --- a/examples/chain/wasm/query/10_ContractsByCreator/example.go +++ b/examples/chain/wasm/query/10_ContractsByCreator/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/1_ContractInfo/example.go b/examples/chain/wasm/query/1_ContractInfo/example.go index 801c532d..e055c974 100644 --- a/examples/chain/wasm/query/1_ContractInfo/example.go +++ b/examples/chain/wasm/query/1_ContractInfo/example.go @@ -11,9 +11,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -26,7 +28,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/2_ContractHistory/example.go b/examples/chain/wasm/query/2_ContractHistory/example.go index c12ef3e4..9e1bcdd9 100644 --- a/examples/chain/wasm/query/2_ContractHistory/example.go +++ b/examples/chain/wasm/query/2_ContractHistory/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/3_ContractsByCode/example.go b/examples/chain/wasm/query/3_ContractsByCode/example.go index a9380cf4..763b0ea0 100644 --- a/examples/chain/wasm/query/3_ContractsByCode/example.go +++ b/examples/chain/wasm/query/3_ContractsByCode/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/4_AllContractsState/example.go b/examples/chain/wasm/query/4_AllContractsState/example.go index 7fba4518..fdf9e53c 100644 --- a/examples/chain/wasm/query/4_AllContractsState/example.go +++ b/examples/chain/wasm/query/4_AllContractsState/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/5_RawContractState/example.go b/examples/chain/wasm/query/5_RawContractState/example.go index 842f970f..d4e5dcc0 100644 --- a/examples/chain/wasm/query/5_RawContractState/example.go +++ b/examples/chain/wasm/query/5_RawContractState/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/6_SmartContractState/example.go b/examples/chain/wasm/query/6_SmartContractState/example.go index 32644d36..4bd0bd9d 100644 --- a/examples/chain/wasm/query/6_SmartContractState/example.go +++ b/examples/chain/wasm/query/6_SmartContractState/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/7_SmartContractCode/example.go b/examples/chain/wasm/query/7_SmartContractCode/example.go index 52cf10e1..b7098b03 100644 --- a/examples/chain/wasm/query/7_SmartContractCode/example.go +++ b/examples/chain/wasm/query/7_SmartContractCode/example.go @@ -10,9 +10,11 @@ import ( chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -25,7 +27,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/8_SmartContractCodes/example.go b/examples/chain/wasm/query/8_SmartContractCodes/example.go index 9d23df16..690fc833 100644 --- a/examples/chain/wasm/query/8_SmartContractCodes/example.go +++ b/examples/chain/wasm/query/8_SmartContractCodes/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasm/query/9_SmartContractPinnedCodes/example.go b/examples/chain/wasm/query/9_SmartContractPinnedCodes/example.go index 2179209b..ec59aa1e 100644 --- a/examples/chain/wasm/query/9_SmartContractPinnedCodes/example.go +++ b/examples/chain/wasm/query/9_SmartContractPinnedCodes/example.go @@ -6,6 +6,7 @@ import ( "fmt" "github.com/cosmos/cosmos-sdk/types/query" + "github.com/joho/godotenv" "os" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go b/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go index 89338c80..ae7f687e 100644 --- a/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go +++ b/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go @@ -8,6 +8,7 @@ import ( "time" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" wasmxtypes "github.com/InjectiveLabs/sdk-go/chain/wasmx/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -15,6 +16,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -27,7 +29,7 @@ func main() { "file", "inj-user", "12345678", - "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/exchange/oracle/1_StreamPrices/example.go b/examples/exchange/oracle/1_StreamPrices/example.go index ddeb0792..d27849e4 100644 --- a/examples/exchange/oracle/1_StreamPrices/example.go +++ b/examples/exchange/oracle/1_StreamPrices/example.go @@ -8,6 +8,7 @@ import ( "strings" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/exchange/oracle/1_StreamPrices/injective_data/ofac.json b/examples/exchange/oracle/1_StreamPrices/injective_data/ofac.json deleted file mode 100644 index 3035ea42..00000000 --- a/examples/exchange/oracle/1_StreamPrices/injective_data/ofac.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - "0x04dba1194ee10112fe6c3207c0687def0e78bacf", - "0x08723392ed15743cc38513c4925f5e6be5c17243", - "0x08b2efdcdb8822efe5ad0eae55517cf5dc544251", - "0x0931ca4d13bb4ba75d9b7132ab690265d749a5e7", - "0x098b716b8aaf21512996dc57eb0615e2383e2f96", - "0x0ee5067b06776a89ccc7dc8ee369984ad7db5e06", - "0x175d44451403edf28469df03a9280c1197adb92c", - "0x1967d8af5bd86a497fb3dd7899a020e47560daaf", - "0x1999ef52700c34de7ec2b68a28aafb37db0c5ade", - "0x19aa5fe80d33a56d56c78e82ea5e50e5d80b4dff", - "0x19f8f2b0915daa12a3f5c9cf01df9e24d53794f7", - "0x1da5821544e25c636c1417ba96ade4cf6d2f9b5a", - "0x21b8d56bda776bbe68655a16895afd96f5534fed", - "0x2f389ce8bd8ff92de3402ffce4691d17fc4f6535", - "0x308ed4b7b49797e1a98d3818bff6fe5385410370", - "0x35fb6f6db4fb05e6a4ce86f2c93691425626d4b1", - "0x38735f03b30fbc022ddd06abed01f0ca823c6a94", - "0x39d908dac893cbcb53cc86e0ecc369aa4def1a29", - "0x3ad9db589d201a710ed237c829c7860ba86510fc", - "0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d", - "0x3cffd56b47b7b41c56258d9c7731abadc360e073", - "0x3e37627deaa754090fbfbb8bd226c1ce66d255e9", - "0x43fa21d92141ba9db43052492e0deee5aa5f0a93", - "0x48549a34ae37b12f6a30566245176994e17c6b4a", - "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c", - "0x502371699497d08d5339c870851898d6d72521dd", - "0x530a64c0ce595026a4a556b703644228179e2d57", - "0x53b6936513e738f44fb50d2b9476730c0ab3bfc1", - "0x5512d943ed1f7c8a43f3435c85f7ab68b30121b0", - "0x5a14e72060c11313e38738009254a90968f58f51", - "0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f", - "0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2", - "0x67d40ee1a85bf4a4bb7ffae16de985e8427b6b45", - "0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e", - "0x6f1ca141a28907f78ebaa64fb83a9088b02a8352", - "0x72a5843cc08275c8171e582972aa4fda8c397b2a", - "0x797d7ae72ebddcdea2a346c1834e04d1f8df102b", - "0x7db418b5d567a4e0e8c59ad71be1fce48f3e6107", - "0x7f19720a857f834887fc9a7bc0a0fbe7fc7f8102", - "0x7f367cc41522ce07553e823bf3be79a889debe1b", - "0x7ff9cfad3877f21d41da833e2f775db0569ee3d9", - "0x83e5bc4ffa856bb84bb88581f5dd62a433a25e0d", - "0x8576acc5c05d6ce88f4e49bf65bdf0c62f91353c", - "0x901bb9583b24d97e995513c6778dc6888ab6870e", - "0x931546d9e66836abf687d2bc64b30407bac8c568", - "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1", - "0x97b1043abd9e6fc31681635166d430a458d14f9c", - "0x983a81ca6fb1e441266d2fbcb7d8e530ac2e05a2", - "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa", - "0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9", - "0xa0e1c89ef1a489c9c7de96311ed5ce5d32c20e4b", - "0xa7e5d5a720f06526557c513402f2e6b5fa20b008", - "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", - "0xc2a3829f459b3edd87791c74cd45402ba0a20be3", - "0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a", - "0xd0975b32cea532eadddfc9c60481976e39db3472", - "0xd5ed34b52ac4ab84d8fa8a231a3218bbf01ed510", - "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b", - "0xdcbeffbecce100cce9e4b153c4e15cb885643193", - "0xe1d865c3d669dcc8c57c8d023140cb204e672ee4", - "0xe7aa314c77f4233c18c6cc84384a9247c0cf367b", - "0xe950dc316b836e4eefb8308bf32bf7c72a1358ff", - "0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921", - "0xefe301d259f525ca1ba74a7977b80d5b060b3cca", - "0xf3701f445b6bdafedbca97d1e477357839e4120d", - "0xf7b31119c2682c88d88d455dbb9d5932c65cf1be", - "0xfac583c0cf07ea434052c49115a4682172ab6b4f", - "0xfec8a60023265364d066a1212fde3930f6ae8da7", - "0xc5801cd781d168e2d3899ad9c39d8a2541871298", - "0x0992E2D17e0082Df8a31Bf36Bd8Cc662551de68B", - "0x8aa07899eb940f40e514b8effdb3b6af5d1cf7bb", - "0xb9436d76e8fe08859d042e41b4a21c85715e1176", - "0x7bc5cb059f21553af489d2b2df3d40aaae9b44e8", - "0x430ab3c698b3210548b6ac9f72936b43b15ebe9b" -] diff --git a/examples/exchange/oracle/2_Price/example.go b/examples/exchange/oracle/2_Price/example.go index fed45719..66155514 100644 --- a/examples/exchange/oracle/2_Price/example.go +++ b/examples/exchange/oracle/2_Price/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -16,6 +17,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -28,7 +30,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/exchange/oracle/4_PriceV2/example.go b/examples/exchange/oracle/4_PriceV2/example.go index 81abfe84..69192e52 100644 --- a/examples/exchange/oracle/4_PriceV2/example.go +++ b/examples/exchange/oracle/4_PriceV2/example.go @@ -7,6 +7,7 @@ import ( "os" rpchttp "github.com/cometbft/cometbft/rpc/client/http" + "github.com/joho/godotenv" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -17,6 +18,7 @@ import ( ) func main() { + _ = godotenv.Load() network := common.LoadNetwork("testnet", "lb") tmClient, err := rpchttp.New(network.TmEndpoint) if err != nil { @@ -29,7 +31,7 @@ func main() { "file", "inj-user", "12345678", - "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + os.Getenv("INJECTIVE_PRIVATE_KEY"), // keyring will be used if pk not provided false, ) diff --git a/examples/exchange/oracle/5_StreamOracleList/example.go b/examples/exchange/oracle/5_StreamOracleList/example.go new file mode 100644 index 00000000..1cd09a44 --- /dev/null +++ b/examples/exchange/oracle/5_StreamOracleList/example.go @@ -0,0 +1,44 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client/common" + exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + exchangeClient, err := exchangeclient.NewExchangeClient(network) + if err != nil { + panic(err) + } + + ctx := context.Background() + + // Filter by oracle type; pass nil or empty slice for symbols to receive all symbols of this type. + oracleType := "pricefeed" + symbols := []string{"BTC/USDT", "ETH/USDT"} + + stream, err := exchangeClient.StreamOracleList(ctx, oracleType, symbols) + if err != nil { + panic(err) + } + + for { + select { + case <-ctx.Done(): + return + default: + res, err := stream.Recv() + if err != nil { + fmt.Println(err) + return + } + str, _ := json.MarshalIndent(res, "", "\t") + fmt.Print(string(str)) + } + } +} diff --git a/examples/exchange/oracle/6_StreamPricesByMarkets/example.go b/examples/exchange/oracle/6_StreamPricesByMarkets/example.go new file mode 100644 index 00000000..bfe8ca38 --- /dev/null +++ b/examples/exchange/oracle/6_StreamPricesByMarkets/example.go @@ -0,0 +1,46 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client/common" + exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + exchangeClient, err := exchangeclient.NewExchangeClient(network) + if err != nil { + panic(err) + } + + ctx := context.Background() + + // Pass an empty slice to receive price updates for all markets. + marketIds := []string{ + "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6", // INJ/USDT perp + "0x54d4505adef6a5cef26bc403a33d595620ded4e15b9e2bc3dd489b714813366a", // BTC/USDT perp + } + + stream, err := exchangeClient.StreamPricesByMarkets(ctx, marketIds) + if err != nil { + panic(err) + } + + for { + select { + case <-ctx.Done(): + return + default: + res, err := stream.Recv() + if err != nil { + fmt.Println(err) + return + } + str, _ := json.MarshalIndent(res, "", "\t") + fmt.Print(string(str)) + } + } +} diff --git a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go index 206922ee..bf9a04fa 100644 --- a/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go @@ -2389,7 +2389,7 @@ type SpotTrade struct { FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` // A unique string that helps differentiate between trades TradeId string `protobuf:"bytes,10,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker + // Trade's execution side, maker,taker,n/a (n/a = not applicable) ExecutionSide string `protobuf:"bytes,11,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` // Custom client order ID Cid string `protobuf:"bytes,12,opt,name=cid,proto3" json:"cid,omitempty"` @@ -2604,7 +2604,7 @@ type DerivativeTrade struct { FeeRecipient string `protobuf:"bytes,10,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` // A unique string that helps differentiate between trades TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker + // Trade's execution side, maker,taker,n/a (n/a = not applicable) ExecutionSide string `protobuf:"bytes,12,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` // Custom client order ID Cid string `protobuf:"bytes,13,opt,name=cid,proto3" json:"cid,omitempty"` diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go index e6dabc54..a08a7e8b 100644 --- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go @@ -3343,6 +3343,9 @@ type DerivativePositionV2 struct { CumulativeFundingEntry string `protobuf:"bytes,15,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3" json:"cumulative_funding_entry,omitempty"` // Effective cumulative funding entry of the position EffectiveCumulativeFundingEntry string `protobuf:"bytes,16,opt,name=effective_cumulative_funding_entry,json=effectiveCumulativeFundingEntry,proto3" json:"effective_cumulative_funding_entry,omitempty"` + // Unrealized profit and loss of the position (only present when requested with + // with_upnl=true) + Upnl string `protobuf:"bytes,17,opt,name=upnl,proto3" json:"upnl,omitempty"` } func (x *DerivativePositionV2) Reset() { @@ -3482,6 +3485,13 @@ func (x *DerivativePositionV2) GetEffectiveCumulativeFundingEntry() string { return "" } +func (x *DerivativePositionV2) GetUpnl() string { + if x != nil { + return x.Upnl + } + return "" +} + type LiquidablePositionsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4795,7 +4805,7 @@ type DerivativeTrade struct { FeeRecipient string `protobuf:"bytes,10,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` // A unique string that helps differentiate between trades TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker + // Trade's execution side, maker,taker,n/a (n/a = not applicable) ExecutionSide string `protobuf:"bytes,12,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` // Custom client order ID Cid string `protobuf:"bytes,13,opt,name=cid,proto3" json:"cid,omitempty"` @@ -7343,7 +7353,7 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x22, 0xaf, 0x04, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x67, 0x69, 0x6e, 0x67, 0x22, 0xc3, 0x04, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, @@ -7378,768 +7388,769 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x63, 0x0a, 0x1a, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x70, 0x6e, 0x6c, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x70, 0x6e, 0x6c, 0x22, 0x63, 0x0a, 0x1a, 0x4c, 0x69, + 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, + 0x72, 0x0a, 0x1b, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, + 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x16, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, + 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x64, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x17, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4d, 0x0a, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x77, 0x0a, + 0x13, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x72, 0x0a, 0x1b, 0x4c, - 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x09, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0xbe, 0x01, 0x0a, 0x16, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, - 0x22, 0xab, 0x01, 0x0a, 0x17, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x08, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x53, 0x0a, 0x0d, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, + 0x61, 0x74, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0x5c, 0x0a, 0x0b, 0x46, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc9, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcb, + 0x01, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x01, 0x0a, + 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcf, 0x03, + 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, + 0xaa, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x03, 0x0a, + 0x0d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, + 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, + 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xfa, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0x88, - 0x01, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x77, 0x0a, 0x13, 0x46, 0x75, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x66, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6e, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, + 0x6e, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x6c, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x22, 0xe6, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, + 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, + 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, + 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, - 0x74, 0x65, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, - 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x22, 0x5c, 0x0a, 0x0b, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, - 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, - 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0xc9, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8a, 0x01, - 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, + 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, - 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, - 0x32, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcf, 0x03, 0x0a, 0x13, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x23, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, - 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, - 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, + 0x1b, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, - 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, - 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, - 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, + 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, + 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, - 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x22, 0xfa, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6c, - 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x74, - 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f, - 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, - 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, - 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, - 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x70, 0x6e, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6e, 0x6c, 0x22, 0xbb, - 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, - 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0xe6, 0x03, 0x0a, - 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, 0x0a, 0x13, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, - 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, - 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xec, - 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, - 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa7, 0x01, - 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, + 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, + 0x73, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, + 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x1c, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x73, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, - 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b, - 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, - 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, - 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x72, 0x65, - 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1c, 0x0a, - 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, - 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, - 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, - 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, - 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x35, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x74, 0x0a, 0x14, - 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, + 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x5f, 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x35, 0x0a, 0x13, 0x4f, 0x70, 0x65, + 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, + 0x22, 0x74, 0x0a, 0x14, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x65, + 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x32, 0xd8, + 0x1c, 0x0a, 0x1e, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, + 0x43, 0x12, 0x70, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, - 0x74, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, - 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x32, 0xd8, 0x1c, 0x0a, 0x1e, 0x49, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, - 0x07, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6d, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, + 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, - 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, - 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, + 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, + 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x94, 0x01, 0x0a, 0x13, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, - 0x13, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, + 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, + 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, - 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, - 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, - 0x32, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, - 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, - 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x40, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x7c, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69, - 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, + 0x0a, 0x13, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x7f, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, + 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, + 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, - 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, - 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, - 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, - 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x6d, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x73, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a, - 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, + 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, - 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x65, 0x73, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, + 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, + 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x96, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x6e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, + 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go index 77590da9..4867f285 100644 --- a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go +++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go @@ -296,6 +296,8 @@ type StreamBlockEventsRequest struct { // Select backend processor Backend string `protobuf:"bytes,1,opt,name=backend,proto3" json:"backend,omitempty"` Height int32 `protobuf:"zigzag32,2,opt,name=height,proto3" json:"height,omitempty"` + // Comma separated list of events to get + Events string `protobuf:"bytes,3,opt,name=events,proto3" json:"events,omitempty"` } func (x *StreamBlockEventsRequest) Reset() { @@ -344,6 +346,13 @@ func (x *StreamBlockEventsRequest) GetHeight() int32 { return 0 } +func (x *StreamBlockEventsRequest) GetEvents() string { + if x != nil { + return x.Events + } + return "" +} + type StreamBlockEventsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1554,217 +1563,218 @@ var file_goadesign_goagen_event_provider_api_proto_rawDesc = []byte{ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x4c, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x65, 0x22, 0x64, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x4e, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, - 0x9e, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, - 0x22, 0x6a, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x73, 0x0a, 0x18, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, - 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, - 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, - 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x75, - 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, - 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, - 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x38, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xca, 0x01, 0x0a, 0x0e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09, - 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x4e, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, + 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, + 0x53, 0x79, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x6a, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x73, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, + 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x50, 0x43, 0x2e, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, - 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1a, + 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x05, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x61, + 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x22, 0xca, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x2e, 0x54, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x5a, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x05, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, - 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, - 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, - 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x22, 0xcc, 0x02, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, - 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, - 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x0a, 0x74, - 0x78, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x65, 0x67, - 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, + 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, + 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, + 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x54, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, + 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, + 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, + 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, + 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xcc, 0x02, 0x0a, 0x08, 0x52, 0x61, 0x77, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x0a, 0x74, 0x78, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x65, + 0x67, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, + 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, + 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf9, 0x01, 0x0a, 0x15, 0x41, 0x42, 0x43, 0x49, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, + 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, + 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, + 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x67, 0x61, + 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, - 0xf9, 0x01, 0x0a, 0x15, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, - 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a, - 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x22, 0x62, 0x0a, 0x09, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, + 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0d, 0x41, 0x42, 0x43, 0x49, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x3b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x01, + 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, + 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, + 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0xd3, 0x06, 0x0a, 0x10, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x6a, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x62, 0x0a, 0x09, 0x41, - 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, - 0x37, 0x0a, 0x0d, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, - 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, - 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, - 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, - 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x32, 0xd3, 0x06, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x75, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, + 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, - 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x50, 0x43, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, + 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, + 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2d, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, + 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go index ce27e93f..42a7665e 100644 --- a/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go @@ -2020,6 +2020,7 @@ type TxData struct { // Block timestamp in unix milli BlockUnixTimestamp uint64 `protobuf:"varint,14,opt,name=block_unix_timestamp,json=blockUnixTimestamp,proto3" json:"block_unix_timestamp,omitempty"` EthereumTxHashHex string `protobuf:"bytes,15,opt,name=ethereum_tx_hash_hex,json=ethereumTxHashHex,proto3" json:"ethereum_tx_hash_hex,omitempty"` + Memo string `protobuf:"bytes,16,opt,name=memo,proto3" json:"memo,omitempty"` } func (x *TxData) Reset() { @@ -2159,6 +2160,13 @@ func (x *TxData) GetEthereumTxHashHex() string { return "" } +func (x *TxData) GetMemo() string { + if x != nil { + return x.Memo + } + return "" +} + type GetValidatorsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7256,7 +7264,7 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x6e, 0x69, 0x78, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xf9, 0x03, 0x0a, 0x06, 0x54, 0x78, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x8d, 0x04, 0x0a, 0x06, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, @@ -7288,892 +7296,893 @@ var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x54, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x48, 0x65, 0x78, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x68, 0x48, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, + 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x07, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, + 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, + 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x29, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, + 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, + 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, + 0x73, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x75, 0x70, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, + 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x10, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, + 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, + 0xc8, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, + 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x4c, 0x0a, 0x0f, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x53, 0x6c, 0x61, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, + 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, + 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x2f, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x73, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x35, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xb5, 0x07, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x64, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, - 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, - 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x41, - 0x0a, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x07, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x3b, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x0e, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0xc8, 0x01, 0x0a, 0x14, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, - 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, - 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x4c, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x0d, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x69, 0x73, 0x73, 0x65, - 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x2f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x73, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, + 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x02, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, + 0x6b, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x7c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x01, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x7e, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, + 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x76, + 0x6d, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, + 0x45, 0x76, 0x6d, 0x48, 0x61, 0x73, 0x68, 0x22, 0x77, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, + 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, - 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x22, 0x7f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x7c, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, - 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x01, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, - 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, - 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x7e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x78, - 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x78, - 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x12, 0x1e, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x76, 0x6d, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x76, 0x6d, 0x48, - 0x61, 0x73, 0x68, 0x22, 0x77, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, - 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, - 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x79, 0x0a, 0x19, - 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x79, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, + 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xf9, 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, + 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, + 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x22, 0x7c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, + 0x70, 0x22, 0x60, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x22, 0x87, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, - 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x22, 0xf9, 0x02, 0x0a, 0x0e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x14, - 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, - 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, + 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, + 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, + 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, + 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, + 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, + 0x04, 0x0a, 0x0d, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, + 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x7c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x60, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, - 0x87, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, - 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x46, 0x65, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, - 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x61, 0x74, 0x63, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6e, - 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, - 0x63, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x72, 0x63, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x73, - 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x6b, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, - 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x54, 0x78, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x9e, 0x04, 0x0a, 0x0d, 0x49, - 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x48, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x0e, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x69, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, - 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, - 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, - 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x03, - 0x0a, 0x08, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, - 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x12, 0x0a, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, - 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x22, 0x31, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, - 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x22, 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, - 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, - 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xff, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, - 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x63, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x4f, 0x6e, - 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, - 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, 0x0a, 0x0c, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, - 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x69, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x09, 0x74, 0x6f, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, + 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, + 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x68, 0x61, 0x73, 0x68, 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x31, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, + 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xf1, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x0e, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, - 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, - 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x64, 0x65, 0x63, - 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x43, 0x77, 0x32, - 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, - 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, - 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x1f, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, - 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, 0x04, 0x0a, 0x20, 0x47, - 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, - 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, - 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, - 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, - 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, - 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, - 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, - 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, + 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, + 0x0a, 0x0b, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x64, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, + 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xff, 0x01, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x66, 0x72, + 0x6f, 0x6d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, + 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x22, 0x8c, + 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe9, 0x04, + 0x0a, 0x0c, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x17, + 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, + 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, + 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, + 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, + 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, 0x30, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x43, 0x77, 0x32, 0x30, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xda, 0x01, 0x0a, - 0x0f, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x49, - 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x77, 0x32, - 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x52, 0x65, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x50, 0x0a, 0x10, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x6a, - 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, - 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, - 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x07, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, 0xbd, 0x02, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, - 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, - 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x18, - 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x0c, 0x42, - 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x51, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, - 0x73, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x75, 0x73, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa8, 0x02, 0x0a, - 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, - 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xea, - 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, - 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, - 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a, - 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, - 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x6e, - 0x69, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9c, - 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x6a, - 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, - 0x6e, 0x6a, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x78, 0x73, 0x5f, - 0x70, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, - 0x73, 0x50, 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, - 0x31, 0x30, 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x78, 0x73, - 0x50, 0x73, 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x73, 0x5f, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x73, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x78, 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, - 0x78, 0x73, 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x48, 0x32, 0xe0, 0x16, - 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, + 0x0a, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x7a, 0x0a, 0x0d, 0x43, 0x77, 0x32, 0x30, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x81, 0x01, 0x0a, + 0x11, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, + 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x22, 0x4c, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xfd, + 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x6e, 0x69, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, + 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x66, 0x75, 0x6e, 0x64, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x05, 0x66, + 0x75, 0x6e, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, + 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x67, + 0x72, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x47, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x77, + 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, + 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x77, 0x32, 0x30, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x0c, 0x63, 0x77, 0x32, 0x30, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, + 0x0f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, + 0x22, 0x50, 0x0a, 0x10, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2f, + 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x63, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x74, 0x61, 0x22, + 0xbd, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0x8c, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x61, 0x6e, 0x6b, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, + 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x51, 0x0a, 0x04, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x12, 0x0a, 0x10, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0xa8, 0x02, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0xea, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, + 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x74, 0x78, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x2e, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 0x52, 0x03, 0x74, 0x78, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, + 0x14, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x6e, 0x69, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, + 0x11, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x9c, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x6e, 0x6a, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x69, 0x6e, 0x6a, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x0a, + 0x74, 0x78, 0x73, 0x5f, 0x70, 0x73, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x74, 0x78, 0x73, 0x50, 0x73, 0x32, 0x34, 0x48, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x78, + 0x73, 0x5f, 0x70, 0x73, 0x31, 0x30, 0x30, 0x5f, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x74, 0x78, 0x73, 0x50, 0x73, 0x31, 0x30, 0x30, 0x42, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, + 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, + 0x78, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x32, 0x34, + 0x5f, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x32, 0x34, 0x48, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x73, 0x33, 0x30, 0x5f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x74, 0x78, 0x73, 0x33, 0x30, 0x44, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x34, + 0x48, 0x32, 0xe0, 0x16, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x52, 0x50, 0x43, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x2e, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, + 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x2e, + 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x56, - 0x32, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, + 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, - 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, + 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, + 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2c, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x54, - 0x78, 0x73, 0x56, 0x32, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, - 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, - 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, 0x34, 0x2e, 0x69, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, - 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x42, 0x79, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x50, 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x12, + 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, + 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x12, 0x30, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, - 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, - 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, - 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, - 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x65, 0x67, 0x67, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, + 0x12, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, + 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x47, 0x65, 0x74, 0x50, 0x65, 0x67, 0x67, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, + 0x78, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x42, 0x43, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x78, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, + 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, - 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x69, 0x6e, + 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, + 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, + 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, + 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, + 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x79, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, - 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x77, 0x32, 0x30, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, + 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x61, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, + 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, - 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x78, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go index 895a7431..cc9e4494 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go @@ -751,6 +751,138 @@ func (x *StreamPricesResponse) GetTimestamp() int64 { return 0 } +type StreamOracleListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Filter by oracle type + OracleType string `protobuf:"bytes,1,opt,name=oracle_type,json=oracleType,proto3" json:"oracle_type,omitempty"` + // Oracle symbols to stream; empty streams all symbols for the given oracle type + Symbols []string `protobuf:"bytes,2,rep,name=symbols,proto3" json:"symbols,omitempty"` +} + +func (x *StreamOracleListRequest) Reset() { + *x = StreamOracleListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamOracleListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamOracleListRequest) ProtoMessage() {} + +func (x *StreamOracleListRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StreamOracleListRequest.ProtoReflect.Descriptor instead. +func (*StreamOracleListRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{11} +} + +func (x *StreamOracleListRequest) GetOracleType() string { + if x != nil { + return x.OracleType + } + return "" +} + +func (x *StreamOracleListRequest) GetSymbols() []string { + if x != nil { + return x.Symbols + } + return nil +} + +type StreamOracleListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The symbol of the oracle asset + Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` + // Oracle type + OracleType string `protobuf:"bytes,2,opt,name=oracle_type,json=oracleType,proto3" json:"oracle_type,omitempty"` + // The price of the oracle asset + Price string `protobuf:"bytes,3,opt,name=price,proto3" json:"price,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *StreamOracleListResponse) Reset() { + *x = StreamOracleListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamOracleListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamOracleListResponse) ProtoMessage() {} + +func (x *StreamOracleListResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StreamOracleListResponse.ProtoReflect.Descriptor instead. +func (*StreamOracleListResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{12} +} + +func (x *StreamOracleListResponse) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +func (x *StreamOracleListResponse) GetOracleType() string { + if x != nil { + return x.OracleType + } + return "" +} + +func (x *StreamOracleListResponse) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *StreamOracleListResponse) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + type StreamPricesByMarketsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -763,7 +895,7 @@ type StreamPricesByMarketsRequest struct { func (x *StreamPricesByMarketsRequest) Reset() { *x = StreamPricesByMarketsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -776,7 +908,7 @@ func (x *StreamPricesByMarketsRequest) String() string { func (*StreamPricesByMarketsRequest) ProtoMessage() {} func (x *StreamPricesByMarketsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -789,7 +921,7 @@ func (x *StreamPricesByMarketsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPricesByMarketsRequest.ProtoReflect.Descriptor instead. func (*StreamPricesByMarketsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{13} } func (x *StreamPricesByMarketsRequest) GetMarketIds() []string { @@ -815,7 +947,7 @@ type StreamPricesByMarketsResponse struct { func (x *StreamPricesByMarketsResponse) Reset() { *x = StreamPricesByMarketsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -828,7 +960,7 @@ func (x *StreamPricesByMarketsResponse) String() string { func (*StreamPricesByMarketsResponse) ProtoMessage() {} func (x *StreamPricesByMarketsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -841,7 +973,7 @@ func (x *StreamPricesByMarketsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPricesByMarketsResponse.ProtoReflect.Descriptor instead. func (*StreamPricesByMarketsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{14} } func (x *StreamPricesByMarketsResponse) GetPrice() string { @@ -955,6 +1087,20 @@ var file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc = []byte{ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x54, 0x0a, 0x17, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, + 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x73, 0x22, 0x87, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, + 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3d, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, @@ -966,7 +1112,7 @@ var file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc = []byte{ 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x32, 0x8d, 0x04, 0x0a, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x32, 0x82, 0x05, 0x0a, 0x12, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, 0x50, 0x43, 0x12, 0x5f, 0x0a, 0x0a, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, @@ -991,17 +1137,25 @@ var file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc = []byte{ 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, - 0x73, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, - 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x19, 0x5a, 0x17, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x73, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, + 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x42, 0x19, 0x5a, 0x17, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1016,7 +1170,7 @@ func file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_goadesign_goagen_injective_oracle_rpc_proto_goTypes = []interface{}{ (*OracleListRequest)(nil), // 0: injective_oracle_rpc.OracleListRequest (*OracleListResponse)(nil), // 1: injective_oracle_rpc.OracleListResponse @@ -1029,8 +1183,10 @@ var file_goadesign_goagen_injective_oracle_rpc_proto_goTypes = []interface{}{ (*PriceV2Result)(nil), // 8: injective_oracle_rpc.PriceV2Result (*StreamPricesRequest)(nil), // 9: injective_oracle_rpc.StreamPricesRequest (*StreamPricesResponse)(nil), // 10: injective_oracle_rpc.StreamPricesResponse - (*StreamPricesByMarketsRequest)(nil), // 11: injective_oracle_rpc.StreamPricesByMarketsRequest - (*StreamPricesByMarketsResponse)(nil), // 12: injective_oracle_rpc.StreamPricesByMarketsResponse + (*StreamOracleListRequest)(nil), // 11: injective_oracle_rpc.StreamOracleListRequest + (*StreamOracleListResponse)(nil), // 12: injective_oracle_rpc.StreamOracleListResponse + (*StreamPricesByMarketsRequest)(nil), // 13: injective_oracle_rpc.StreamPricesByMarketsRequest + (*StreamPricesByMarketsResponse)(nil), // 14: injective_oracle_rpc.StreamPricesByMarketsResponse } var file_goadesign_goagen_injective_oracle_rpc_proto_depIdxs = []int32{ 2, // 0: injective_oracle_rpc.OracleListResponse.oracles:type_name -> injective_oracle_rpc.Oracle @@ -1040,14 +1196,16 @@ var file_goadesign_goagen_injective_oracle_rpc_proto_depIdxs = []int32{ 3, // 4: injective_oracle_rpc.InjectiveOracleRPC.Price:input_type -> injective_oracle_rpc.PriceRequest 5, // 5: injective_oracle_rpc.InjectiveOracleRPC.PriceV2:input_type -> injective_oracle_rpc.PriceV2Request 9, // 6: injective_oracle_rpc.InjectiveOracleRPC.StreamPrices:input_type -> injective_oracle_rpc.StreamPricesRequest - 11, // 7: injective_oracle_rpc.InjectiveOracleRPC.StreamPricesByMarkets:input_type -> injective_oracle_rpc.StreamPricesByMarketsRequest - 1, // 8: injective_oracle_rpc.InjectiveOracleRPC.OracleList:output_type -> injective_oracle_rpc.OracleListResponse - 4, // 9: injective_oracle_rpc.InjectiveOracleRPC.Price:output_type -> injective_oracle_rpc.PriceResponse - 7, // 10: injective_oracle_rpc.InjectiveOracleRPC.PriceV2:output_type -> injective_oracle_rpc.PriceV2Response - 10, // 11: injective_oracle_rpc.InjectiveOracleRPC.StreamPrices:output_type -> injective_oracle_rpc.StreamPricesResponse - 12, // 12: injective_oracle_rpc.InjectiveOracleRPC.StreamPricesByMarkets:output_type -> injective_oracle_rpc.StreamPricesByMarketsResponse - 8, // [8:13] is the sub-list for method output_type - 3, // [3:8] is the sub-list for method input_type + 11, // 7: injective_oracle_rpc.InjectiveOracleRPC.StreamOracleList:input_type -> injective_oracle_rpc.StreamOracleListRequest + 13, // 8: injective_oracle_rpc.InjectiveOracleRPC.StreamPricesByMarkets:input_type -> injective_oracle_rpc.StreamPricesByMarketsRequest + 1, // 9: injective_oracle_rpc.InjectiveOracleRPC.OracleList:output_type -> injective_oracle_rpc.OracleListResponse + 4, // 10: injective_oracle_rpc.InjectiveOracleRPC.Price:output_type -> injective_oracle_rpc.PriceResponse + 7, // 11: injective_oracle_rpc.InjectiveOracleRPC.PriceV2:output_type -> injective_oracle_rpc.PriceV2Response + 10, // 12: injective_oracle_rpc.InjectiveOracleRPC.StreamPrices:output_type -> injective_oracle_rpc.StreamPricesResponse + 12, // 13: injective_oracle_rpc.InjectiveOracleRPC.StreamOracleList:output_type -> injective_oracle_rpc.StreamOracleListResponse + 14, // 14: injective_oracle_rpc.InjectiveOracleRPC.StreamPricesByMarkets:output_type -> injective_oracle_rpc.StreamPricesByMarketsResponse + 9, // [9:15] is the sub-list for method output_type + 3, // [3:9] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name 3, // [3:3] is the sub-list for extension extendee 0, // [0:3] is the sub-list for field type_name @@ -1192,7 +1350,7 @@ func file_goadesign_goagen_injective_oracle_rpc_proto_init() { } } file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPricesByMarketsRequest); i { + switch v := v.(*StreamOracleListRequest); i { case 0: return &v.state case 1: @@ -1204,6 +1362,30 @@ func file_goadesign_goagen_injective_oracle_rpc_proto_init() { } } file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamOracleListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamPricesByMarketsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPricesByMarketsResponse); i { case 0: return &v.state @@ -1222,7 +1404,7 @@ func file_goadesign_goagen_injective_oracle_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 13, + NumMessages: 15, NumExtensions: 0, NumServices: 1, }, diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go index 51b2d929..eca27c7c 100644 --- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go @@ -31,6 +31,9 @@ type InjectiveOracleRPCClient interface { // StreamPrices streams new price changes for a specified oracle. If no oracles // are provided, all price changes are streamed. StreamPrices(ctx context.Context, in *StreamPricesRequest, opts ...grpc.CallOption) (InjectiveOracleRPC_StreamPricesClient, error) + // StreamOracleList streams oracle data updates filtered by oracle type and + // optionally by symbols. + StreamOracleList(ctx context.Context, in *StreamOracleListRequest, opts ...grpc.CallOption) (InjectiveOracleRPC_StreamOracleListClient, error) // StreamPrices streams new price changes markets StreamPricesByMarkets(ctx context.Context, in *StreamPricesByMarketsRequest, opts ...grpc.CallOption) (InjectiveOracleRPC_StreamPricesByMarketsClient, error) } @@ -102,8 +105,40 @@ func (x *injectiveOracleRPCStreamPricesClient) Recv() (*StreamPricesResponse, er return m, nil } +func (c *injectiveOracleRPCClient) StreamOracleList(ctx context.Context, in *StreamOracleListRequest, opts ...grpc.CallOption) (InjectiveOracleRPC_StreamOracleListClient, error) { + stream, err := c.cc.NewStream(ctx, &InjectiveOracleRPC_ServiceDesc.Streams[1], "/injective_oracle_rpc.InjectiveOracleRPC/StreamOracleList", opts...) + if err != nil { + return nil, err + } + x := &injectiveOracleRPCStreamOracleListClient{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 InjectiveOracleRPC_StreamOracleListClient interface { + Recv() (*StreamOracleListResponse, error) + grpc.ClientStream +} + +type injectiveOracleRPCStreamOracleListClient struct { + grpc.ClientStream +} + +func (x *injectiveOracleRPCStreamOracleListClient) Recv() (*StreamOracleListResponse, error) { + m := new(StreamOracleListResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *injectiveOracleRPCClient) StreamPricesByMarkets(ctx context.Context, in *StreamPricesByMarketsRequest, opts ...grpc.CallOption) (InjectiveOracleRPC_StreamPricesByMarketsClient, error) { - stream, err := c.cc.NewStream(ctx, &InjectiveOracleRPC_ServiceDesc.Streams[1], "/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets", opts...) + stream, err := c.cc.NewStream(ctx, &InjectiveOracleRPC_ServiceDesc.Streams[2], "/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets", opts...) if err != nil { return nil, err } @@ -147,6 +182,9 @@ type InjectiveOracleRPCServer interface { // StreamPrices streams new price changes for a specified oracle. If no oracles // are provided, all price changes are streamed. StreamPrices(*StreamPricesRequest, InjectiveOracleRPC_StreamPricesServer) error + // StreamOracleList streams oracle data updates filtered by oracle type and + // optionally by symbols. + StreamOracleList(*StreamOracleListRequest, InjectiveOracleRPC_StreamOracleListServer) error // StreamPrices streams new price changes markets StreamPricesByMarkets(*StreamPricesByMarketsRequest, InjectiveOracleRPC_StreamPricesByMarketsServer) error mustEmbedUnimplementedInjectiveOracleRPCServer() @@ -168,6 +206,9 @@ func (UnimplementedInjectiveOracleRPCServer) PriceV2(context.Context, *PriceV2Re func (UnimplementedInjectiveOracleRPCServer) StreamPrices(*StreamPricesRequest, InjectiveOracleRPC_StreamPricesServer) error { return status.Errorf(codes.Unimplemented, "method StreamPrices not implemented") } +func (UnimplementedInjectiveOracleRPCServer) StreamOracleList(*StreamOracleListRequest, InjectiveOracleRPC_StreamOracleListServer) error { + return status.Errorf(codes.Unimplemented, "method StreamOracleList not implemented") +} func (UnimplementedInjectiveOracleRPCServer) StreamPricesByMarkets(*StreamPricesByMarketsRequest, InjectiveOracleRPC_StreamPricesByMarketsServer) error { return status.Errorf(codes.Unimplemented, "method StreamPricesByMarkets not implemented") } @@ -259,6 +300,27 @@ func (x *injectiveOracleRPCStreamPricesServer) Send(m *StreamPricesResponse) err return x.ServerStream.SendMsg(m) } +func _InjectiveOracleRPC_StreamOracleList_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamOracleListRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(InjectiveOracleRPCServer).StreamOracleList(m, &injectiveOracleRPCStreamOracleListServer{stream}) +} + +type InjectiveOracleRPC_StreamOracleListServer interface { + Send(*StreamOracleListResponse) error + grpc.ServerStream +} + +type injectiveOracleRPCStreamOracleListServer struct { + grpc.ServerStream +} + +func (x *injectiveOracleRPCStreamOracleListServer) Send(m *StreamOracleListResponse) error { + return x.ServerStream.SendMsg(m) +} + func _InjectiveOracleRPC_StreamPricesByMarkets_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(StreamPricesByMarketsRequest) if err := stream.RecvMsg(m); err != nil { @@ -306,6 +368,11 @@ var InjectiveOracleRPC_ServiceDesc = grpc.ServiceDesc{ Handler: _InjectiveOracleRPC_StreamPrices_Handler, ServerStreams: true, }, + { + StreamName: "StreamOracleList", + Handler: _InjectiveOracleRPC_StreamOracleList_Handler, + ServerStreams: true, + }, { StreamName: "StreamPricesByMarkets", Handler: _InjectiveOracleRPC_StreamPricesByMarkets_Handler, diff --git a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go index 54f1b118..ad555d09 100644 --- a/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go @@ -2357,7 +2357,7 @@ type SpotTrade struct { FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` // A unique string that helps differentiate between trades TradeId string `protobuf:"bytes,10,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` - // Trade's execution side, marker/taker + // Trade's execution side, maker,taker,n/a (n/a = not applicable) ExecutionSide string `protobuf:"bytes,11,opt,name=execution_side,json=executionSide,proto3" json:"execution_side,omitempty"` // Custom client order ID Cid string `protobuf:"bytes,12,opt,name=cid,proto3" json:"cid,omitempty"` diff --git a/go.mod b/go.mod index 571e8655..1ffabf5e 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,12 @@ module github.com/InjectiveLabs/sdk-go -go 1.23.9 +go 1.26.2 require ( cosmossdk.io/api v0.7.6 cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.4.0 + cosmossdk.io/store v1.1.1 cosmossdk.io/x/evidence v0.1.1 cosmossdk.io/x/feegrant v0.1.1 cosmossdk.io/x/tx v0.13.8 @@ -17,25 +18,26 @@ require ( github.com/btcsuite/btcd/btcutil v1.1.6 github.com/cometbft/cometbft v1.0.1 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.50.12 + github.com/cosmos/cosmos-sdk v0.50.14 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.7.0 - github.com/cosmos/ibc-go/v8 v8.6.1 + github.com/cosmos/ibc-go/v8 v8.7.0 github.com/ethereum/go-ethereum v1.15.7 github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.4 github.com/google/uuid v1.6.0 github.com/huandu/go-assert v1.1.5 + github.com/joho/godotenv v1.5.1 github.com/olekukonko/tablewriter v0.0.5 github.com/pkg/errors v0.9.1 github.com/shopspring/decimal v1.2.0 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.11.1 github.com/tidwall/btree v1.7.0 github.com/tyler-smith/go-bip39 v1.1.0 - golang.org/x/crypto v0.37.0 - google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 - google.golang.org/grpc v1.71.0 - google.golang.org/protobuf v1.36.6 + golang.org/x/crypto v0.41.0 + google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 + google.golang.org/grpc v1.75.0 + google.golang.org/protobuf v1.36.10 gotest.tools/v3 v3.5.1 ) @@ -46,24 +48,15 @@ require ( cosmossdk.io/core v0.12.1-0.20231114100755-569e3ff6a0d7 // indirect cosmossdk.io/depinject v1.1.0 // indirect cosmossdk.io/log v1.4.1 // indirect - cosmossdk.io/store v1.1.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect github.com/CosmWasm/wasmvm/v2 v2.1.5 // indirect - github.com/DataDog/appsec-internal-go v1.5.0 // indirect - github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 // indirect - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.48.1 // indirect github.com/DataDog/datadog-go v4.8.3+incompatible // indirect - github.com/DataDog/datadog-go/v5 v5.3.0 // indirect - github.com/DataDog/go-libddwaf/v2 v2.3.2 // indirect - github.com/DataDog/go-tuf v1.0.2-0.5.2 // indirect - github.com/DataDog/sketches-go v1.4.2 // indirect github.com/DataDog/zstd v1.5.6 // indirect - github.com/InjectiveLabs/metrics v0.0.10 // indirect + github.com/InjectiveLabs/metrics/v2 v2.0.0-beta.8 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/VictoriaMetrics/fastcache v1.12.2 // indirect - github.com/alexcesaro/statsd v2.0.0+incompatible // indirect github.com/aws/aws-sdk-go v1.44.327 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect @@ -74,6 +67,7 @@ require ( github.com/bugsnag/bugsnag-go v2.1.2+incompatible // indirect github.com/bugsnag/panicwrap v1.3.4 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/cp v1.1.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect @@ -106,7 +100,6 @@ require ( github.com/distribution/reference v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.6.0 // indirect - github.com/ebitengine/purego v0.8.2 // indirect github.com/emicklei/dot v1.6.2 // indirect github.com/ethereum/c-kzg-4844/v2 v2.1.0 // indirect github.com/ethereum/go-verkle v0.2.2 // indirect @@ -117,7 +110,7 @@ require ( github.com/getsentry/sentry-go v0.31.1 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect @@ -131,14 +124,14 @@ require ( github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.3 // indirect + github.com/graph-gophers/graphql-go v1.5.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-metrics v0.5.3 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.6.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.1-vault-5 // indirect @@ -172,10 +165,8 @@ require ( github.com/oklog/run v1.1.0 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect - github.com/philhofer/fwd v1.1.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.21.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect @@ -189,7 +180,6 @@ require ( github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.5 // indirect - github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect github.com/shamaton/msgpack/v2 v2.2.0 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/sirupsen/logrus v1.9.3 // indirect @@ -203,7 +193,6 @@ require ( github.com/supranational/blst v0.3.14 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/tinylib/msgp v1.1.8 // indirect github.com/tklauser/go-sysconf v0.3.15 // indirect github.com/tklauser/numcpus v0.10.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect @@ -211,22 +200,24 @@ require ( github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.4.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/otel v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.34.0 // indirect - go.uber.org/atomic v1.11.0 // indirect + go.opentelemetry.io/otel v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect + go.opentelemetry.io/otel/metric v1.38.0 // indirect + go.opentelemetry.io/otel/sdk v1.38.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect + go.opentelemetry.io/otel/trace v1.38.0 // indirect + go.opentelemetry.io/proto/otlp v1.7.1 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/net v0.39.0 // indirect - golang.org/x/sync v0.13.0 // indirect - golang.org/x/sys v0.32.0 // indirect - golang.org/x/term v0.31.0 // indirect - golang.org/x/text v0.24.0 // indirect - golang.org/x/time v0.9.0 // indirect - golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect + golang.org/x/net v0.43.0 // indirect + golang.org/x/sync v0.16.0 // indirect + golang.org/x/sys v0.35.0 // indirect + golang.org/x/term v0.34.0 // indirect + golang.org/x/text v0.28.0 // indirect google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287 // indirect - gopkg.in/DataDog/dd-trace-go.v1 v1.62.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect @@ -235,42 +226,42 @@ require ( ) replace ( - cosmossdk.io/api => github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.4 - cosmossdk.io/client/v2 => github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.4 - cosmossdk.io/core => github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.4 - cosmossdk.io/errors => github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.4 - cosmossdk.io/store => github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.4 - cosmossdk.io/x/circuit => github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.4 - cosmossdk.io/x/evidence => github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.4 - cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.4 - cosmossdk.io/x/nft => github.com/InjectiveLabs/cosmos-sdk/x/nft v0.50.14-inj.4 - cosmossdk.io/x/tx => github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.4 - cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.4 + cosmossdk.io/api => github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.9 + cosmossdk.io/client/v2 => github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.9 + cosmossdk.io/core => github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.9 + cosmossdk.io/errors => github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.9 + cosmossdk.io/store => github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.9 + cosmossdk.io/x/circuit => github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.9 + cosmossdk.io/x/evidence => github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.9 + cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.9 + cosmossdk.io/x/nft => github.com/InjectiveLabs/cosmos-sdk/x/nft v0.50.14-inj.9 + cosmossdk.io/x/tx => github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.9 + cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.9 - github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.53.3-inj.2 - github.com/bandprotocol/bandchain-packet => github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 + github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.53.3-inj.3 github.com/bcp-innovations/hyperlane-cosmos => github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj github.com/coder/websocket => github.com/InjectiveLabs/websocket v1.8.13 - github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.6 - github.com/cometbft/cometbft/api => github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2 - github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.4 + github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.7 + github.com/cometbft/cometbft/api => github.com/InjectiveLabs/cometbft/api v1.0.0-inj.3 + github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.9 + github.com/cosmos/gogoproto => github.com/InjectiveLabs/gogoproto v1.7.2-inj.2 - github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 => github.com/InjectiveLabs/ibc-apps/middleware/packet-forward-middleware/v8 v8.2.0-inj.3 - github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 => github.com/InjectiveLabs/ibc-apps/modules/ibc-hooks/v8 v8.0.0-inj.3 - github.com/cosmos/ibc-go/modules/apps/callbacks => github.com/InjectiveLabs/ibc-go/modules/apps/callbacks v0.2.0-inj.3 - github.com/cosmos/ibc-go/modules/capability => github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.3 - github.com/cosmos/ibc-go/v8 => github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.3 - - // geth dev + github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 => github.com/InjectiveLabs/ibc-apps/middleware/packet-forward-middleware/v8 v8.2.0-inj.4 + github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 => github.com/InjectiveLabs/ibc-apps/modules/ibc-hooks/v8 v8.0.0-inj.4 + github.com/cosmos/ibc-go/modules/apps/callbacks => github.com/InjectiveLabs/ibc-go/modules/apps/callbacks v0.2.0-inj.4 + github.com/cosmos/ibc-go/modules/capability => github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.4 + github.com/cosmos/ibc-go/modules/light-clients/08-wasm => github.com/InjectiveLabs/ibc-go/modules/light-clients/08-wasm v0.5.0-inj.4 + github.com/cosmos/ibc-go/v8 => github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.4 github.com/ethereum/go-ethereum => github.com/InjectiveLabs/go-ethereum v1.16.3-inj.2 github.com/improbable-eng/grpc-web => github.com/maxim-inj/grpc-web v0.15.0-inj github.com/miguelmota/go-ethereum-hdwallet => github.com/InjectiveLabs/go-ethereum-hdwallet v0.1.2 - github.com/skip-mev/block-sdk/v2 => github.com/InjectiveLabs/block-sdk/v2 v2.5.1-inj.9 + github.com/skip-mev/block-sdk/v2 => github.com/InjectiveLabs/block-sdk/v2 v2.5.1-inj.10 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/tyler-smith/go-bip39 => github.com/InjectiveLabs/go-bip39 v1.1.0 + nhooyr.io/websocket => github.com/nhooyr/websocket v1.8.11 ) diff --git a/go.sum b/go.sum index 560f839e..4043453e 100644 --- a/go.sum +++ b/go.sum @@ -2,25 +2,1210 @@ buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.5-20241120201313-68e buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.5-20241120201313-68e42a58b301.1/go.mod h1:KLueO9+sAMClHBiSa83y6wIU56oCmn37iKxecUovi+c= buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.5-20240130113600-88ef6483f90f.1 h1:4qKCPmc40FFUXzUjbDyiizHARMuC/vBSSA/Mzks8UJs= buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.5-20240130113600-88ef6483f90f.1/go.mod h1:j9+2upYBrnZlv7h2Uj8zjxNn4aM0tDFKSRc+YMin444= -cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4= -cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= +cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= +cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +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 v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= +cloud.google.com/go v0.110.9/go.mod h1:rpxevX/0Lqvlbc88b7Sc1SPNdyK1riNBTUU6JXhYNpM= +cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic= +cloud.google.com/go v0.111.0/go.mod h1:0mibmpKP1TyOOFYQY5izo0LnT+ecvOQ0Sg3OdmMiNRU= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= +cloud.google.com/go/accessapproval v1.7.2/go.mod h1:/gShiq9/kK/h8T/eEn1BTzalDvk0mZxJlhfw0p+Xuc0= +cloud.google.com/go/accessapproval v1.7.3/go.mod h1:4l8+pwIxGTNqSf4T3ds8nLO94NQf0W/KnMNuQ9PbnP8= +cloud.google.com/go/accessapproval v1.7.4/go.mod h1:/aTEh45LzplQgFYdQdwPMR9YdX0UlhBmvB84uAmQKUc= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= +cloud.google.com/go/accesscontextmanager v1.8.0/go.mod h1:uI+AI/r1oyWK99NN8cQ3UK76AMelMzgZCvJfsi2c+ps= +cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= +cloud.google.com/go/accesscontextmanager v1.8.2/go.mod h1:E6/SCRM30elQJ2PKtFMs2YhfJpZSNcJyejhuzoId4Zk= +cloud.google.com/go/accesscontextmanager v1.8.3/go.mod h1:4i/JkF2JiFbhLnnpnfoTX5vRXfhf9ukhU1ANOTALTOQ= +cloud.google.com/go/accesscontextmanager v1.8.4/go.mod h1:ParU+WbMpD34s5JFEnGAnPBYAgUHozaTmDJU7aCU9+M= +cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= +cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= +cloud.google.com/go/aiplatform v1.48.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= +cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= +cloud.google.com/go/aiplatform v1.51.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= +cloud.google.com/go/aiplatform v1.51.1/go.mod h1:kY3nIMAVQOK2XDqDPHaOuD9e+FdMA6OOpfBjsvaFSOo= +cloud.google.com/go/aiplatform v1.51.2/go.mod h1:hCqVYB3mY45w99TmetEoe8eCQEwZEp9WHxeZdcv9phw= +cloud.google.com/go/aiplatform v1.52.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= +cloud.google.com/go/aiplatform v1.54.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= +cloud.google.com/go/aiplatform v1.57.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= +cloud.google.com/go/aiplatform v1.58.0/go.mod h1:pwZMGvqe0JRkI1GWSZCtnAfrR4K1bv65IHILGA//VEU= +cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= +cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= +cloud.google.com/go/analytics v0.21.4/go.mod h1:zZgNCxLCy8b2rKKVfC1YkC2vTrpfZmeRCySM3aUbskA= +cloud.google.com/go/analytics v0.21.5/go.mod h1:BQtOBHWTlJ96axpPPnw5CvGJ6i3Ve/qX2fTxR8qWyr8= +cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= +cloud.google.com/go/analytics v0.22.0/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= +cloud.google.com/go/apigateway v1.6.2/go.mod h1:CwMC90nnZElorCW63P2pAYm25AtQrHfuOkbRSHj0bT8= +cloud.google.com/go/apigateway v1.6.3/go.mod h1:k68PXWpEs6BVDTtnLQAyG606Q3mz8pshItwPXjgv44Y= +cloud.google.com/go/apigateway v1.6.4/go.mod h1:0EpJlVGH5HwAN4VF4Iec8TAzGN1aQgbxAWGJsnPCGGY= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= +cloud.google.com/go/apigeeconnect v1.6.2/go.mod h1:s6O0CgXT9RgAxlq3DLXvG8riw8PYYbU/v25jqP3Dy18= +cloud.google.com/go/apigeeconnect v1.6.3/go.mod h1:peG0HFQ0si2bN15M6QSjEW/W7Gy3NYkWGz7pFz13cbo= +cloud.google.com/go/apigeeconnect v1.6.4/go.mod h1:CapQCWZ8TCjnU0d7PobxhpOdVz/OVJ2Hr/Zcuu1xFx0= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= +cloud.google.com/go/apigeeregistry v0.7.2/go.mod h1:9CA2B2+TGsPKtfi3F7/1ncCCsL62NXBRfM6iPoGSM+8= +cloud.google.com/go/apigeeregistry v0.8.1/go.mod h1:MW4ig1N4JZQsXmBSwH4rwpgDonocz7FPBSw6XPGHmYw= +cloud.google.com/go/apigeeregistry v0.8.2/go.mod h1:h4v11TDGdeXJDJvImtgK2AFVvMIgGWjSb0HRnBSjcX8= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= +cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= +cloud.google.com/go/appengine v1.8.2/go.mod h1:WMeJV9oZ51pvclqFN2PqHoGnys7rK0rz6s3Mp6yMvDo= +cloud.google.com/go/appengine v1.8.3/go.mod h1:2oUPZ1LVZ5EXi+AF1ihNAF+S8JrzQ3till5m9VQkrsk= +cloud.google.com/go/appengine v1.8.4/go.mod h1:TZ24v+wXBujtkK77CXCpjZbnuTvsFNT41MUaZ28D6vg= +cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= +cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= +cloud.google.com/go/area120 v0.8.2/go.mod h1:a5qfo+x77SRLXnCynFWPUZhnZGeSgvQ+Y0v1kSItkh4= +cloud.google.com/go/area120 v0.8.3/go.mod h1:5zj6pMzVTH+SVHljdSKC35sriR/CVvQZzG/Icdyriw0= +cloud.google.com/go/area120 v0.8.4/go.mod h1:jfawXjxf29wyBXr48+W+GyX/f8fflxp642D/bb9v68M= +cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= +cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= +cloud.google.com/go/artifactregistry v1.14.2/go.mod h1:Xk+QbsKEb0ElmyeMfdHAey41B+qBq3q5R5f5xD4XT3U= +cloud.google.com/go/artifactregistry v1.14.3/go.mod h1:A2/E9GXnsyXl7GUvQ/2CjHA+mVRoWAXC0brg2os+kNI= +cloud.google.com/go/artifactregistry v1.14.4/go.mod h1:SJJcZTMv6ce0LDMUnihCN7WSrI+kBSFV0KIKo8S8aYU= +cloud.google.com/go/artifactregistry v1.14.6/go.mod h1:np9LSFotNWHcjnOgh8UVK0RFPCTUGbO0ve3384xyHfE= +cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= +cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= +cloud.google.com/go/asset v1.15.0/go.mod h1:tpKafV6mEut3+vN9ScGvCHXHj7FALFVta+okxFECHcg= +cloud.google.com/go/asset v1.15.1/go.mod h1:yX/amTvFWRpp5rcFq6XbCxzKT8RJUam1UoboE179jU4= +cloud.google.com/go/asset v1.15.2/go.mod h1:B6H5tclkXvXz7PD22qCA2TDxSVQfasa3iDlM89O2NXs= +cloud.google.com/go/asset v1.15.3/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= +cloud.google.com/go/asset v1.16.0/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= +cloud.google.com/go/asset v1.17.0/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= +cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= +cloud.google.com/go/assuredworkloads v1.11.2/go.mod h1:O1dfr+oZJMlE6mw0Bp0P1KZSlj5SghMBvTpZqIcUAW4= +cloud.google.com/go/assuredworkloads v1.11.3/go.mod h1:vEjfTKYyRUaIeA0bsGJceFV2JKpVRgyG2op3jfa59Zs= +cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U= cloud.google.com/go/auth v0.13.0 h1:8Fu8TZy167JkW8Tj3q7dIkr2v4cndv41ouecJx0PAHs= cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q= cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU= cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= +cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= +cloud.google.com/go/automl v1.13.2/go.mod h1:gNY/fUmDEN40sP8amAX3MaXkxcqPIn7F1UIIPZpy4Mg= +cloud.google.com/go/automl v1.13.3/go.mod h1:Y8KwvyAZFOsMAPqUCfNu1AyclbC6ivCUF/MTwORymyY= +cloud.google.com/go/automl v1.13.4/go.mod h1:ULqwX/OLZ4hBVfKQaMtxMSTlPx0GqGbWN8uA/1EqCP8= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/baremetalsolution v1.1.1/go.mod h1:D1AV6xwOksJMV4OSlWHtWuFNZZYujJknMAP4Qa27QIA= +cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw= +cloud.google.com/go/baremetalsolution v1.2.1/go.mod h1:3qKpKIw12RPXStwQXcbhfxVj1dqQGEvcmA+SX/mUR88= +cloud.google.com/go/baremetalsolution v1.2.2/go.mod h1:O5V6Uu1vzVelYahKfwEWRMaS3AbCkeYHy3145s1FkhM= +cloud.google.com/go/baremetalsolution v1.2.3/go.mod h1:/UAQ5xG3faDdy180rCUv47e0jvpp3BFxT+Cl0PFjw5g= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/batch v1.3.1/go.mod h1:VguXeQKXIYaeeIYbuozUmBR13AfL4SJP7IltNPS+A4A= +cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= +cloud.google.com/go/batch v1.5.0/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= +cloud.google.com/go/batch v1.5.1/go.mod h1:RpBuIYLkQu8+CWDk3dFD/t/jOCGuUpkpX+Y0n1Xccs8= +cloud.google.com/go/batch v1.6.1/go.mod h1:urdpD13zPe6YOK+6iZs/8/x2VBRofvblLpx0t57vM98= +cloud.google.com/go/batch v1.6.3/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= +cloud.google.com/go/batch v1.7.0/go.mod h1:J64gD4vsNSA2O5TtDB5AAux3nJ9iV8U3ilg3JDBYejU= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= +cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= +cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= +cloud.google.com/go/beyondcorp v1.0.1/go.mod h1:zl/rWWAFVeV+kx+X2Javly7o1EIQThU4WlkynffL/lk= +cloud.google.com/go/beyondcorp v1.0.2/go.mod h1:m8cpG7caD+5su+1eZr+TSvF6r21NdLJk4f9u4SP2Ntc= +cloud.google.com/go/beyondcorp v1.0.3/go.mod h1:HcBvnEd7eYr+HGDd5ZbuVmBYX019C6CEXBonXbCVwJo= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= +cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= +cloud.google.com/go/bigquery v1.53.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= +cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec= +cloud.google.com/go/bigquery v1.56.0/go.mod h1:KDcsploXTEY7XT3fDQzMUZlpQLHzE4itubHrnmhUrZA= +cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug= +cloud.google.com/go/bigquery v1.58.0/go.mod h1:0eh4mWNY0KrBTjUzLjoYImapGORq9gEPT7MWjCy9lik= +cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= +cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= +cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= +cloud.google.com/go/billing v1.17.1/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= +cloud.google.com/go/billing v1.17.2/go.mod h1:u/AdV/3wr3xoRBk5xvUzYMS1IawOAPwQMuHgHMdljDg= +cloud.google.com/go/billing v1.17.3/go.mod h1:z83AkoZ7mZwBGT3yTnt6rSGI1OOsHSIi6a5M3mJ8NaU= +cloud.google.com/go/billing v1.17.4/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= +cloud.google.com/go/billing v1.18.0/go.mod h1:5DOYQStCxquGprqfuid/7haD7th74kyMBHkjO/OvDtk= +cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= +cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154= +cloud.google.com/go/binaryauthorization v1.7.1/go.mod h1:GTAyfRWYgcbsP3NJogpV3yeunbUIjx2T9xVeYovtURE= +cloud.google.com/go/binaryauthorization v1.7.2/go.mod h1:kFK5fQtxEp97m92ziy+hbu+uKocka1qRRL8MVJIgjv0= +cloud.google.com/go/binaryauthorization v1.7.3/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= +cloud.google.com/go/binaryauthorization v1.8.0/go.mod h1:VQ/nUGRKhrStlGr+8GMS8f6/vznYLkdK5vaKfdCIpvU= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= +cloud.google.com/go/certificatemanager v1.7.2/go.mod h1:15SYTDQMd00kdoW0+XY5d9e+JbOPjp24AvF48D8BbcQ= +cloud.google.com/go/certificatemanager v1.7.3/go.mod h1:T/sZYuC30PTag0TLo28VedIRIj1KPGcOQzjWAptHa00= +cloud.google.com/go/certificatemanager v1.7.4/go.mod h1:FHAylPe/6IIKuaRmHbjbdLhGhVQ+CWHSD5Jq0k4+cCE= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= +cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0= +cloud.google.com/go/channel v1.17.1/go.mod h1:xqfzcOZAcP4b/hUDH0GkGg1Sd5to6di1HOJn/pi5uBQ= +cloud.google.com/go/channel v1.17.2/go.mod h1:aT2LhnftnyfQceFql5I/mP8mIbiiJS4lWqgXA815zMk= +cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= +cloud.google.com/go/channel v1.17.4/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.13.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.14.1/go.mod h1:K7wGc/3zfvmYWOWwYTgF/d/UVJhS4pu+HAy7PL7mCsU= +cloud.google.com/go/cloudbuild v1.14.2/go.mod h1:Bn6RO0mBYk8Vlrt+8NLrru7WXlQ9/RDWz2uo5KG1/sg= +cloud.google.com/go/cloudbuild v1.14.3/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= +cloud.google.com/go/cloudbuild v1.15.0/go.mod h1:eIXYWmRt3UtggLnFGx4JvXcMj4kShhVzGndL1LwleEM= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= +cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= +cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM= +cloud.google.com/go/clouddms v1.7.1/go.mod h1:o4SR8U95+P7gZ/TX+YbJxehOCsM+fe6/brlrFquiszk= +cloud.google.com/go/clouddms v1.7.2/go.mod h1:Rk32TmWmHo64XqDvW7jgkFQet1tUKNVzs7oajtJT3jU= +cloud.google.com/go/clouddms v1.7.3/go.mod h1:fkN2HQQNUYInAU3NQ3vRLkV2iWs8lIdmBKOx4nrL6Hc= +cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= +cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= +cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= +cloud.google.com/go/cloudtasks v1.12.2/go.mod h1:A7nYkjNlW2gUoROg1kvJrQGhJP/38UaWwsnuBDOBVUk= +cloud.google.com/go/cloudtasks v1.12.3/go.mod h1:GPVXhIOSGEaR+3xT4Fp72ScI+HjHffSS4B8+BaBB5Ys= +cloud.google.com/go/cloudtasks v1.12.4/go.mod h1:BEPu0Gtt2dU6FxZHNqqNdGqIG86qyWKBPGnsb7udGY0= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +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 v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= +cloud.google.com/go/compute v1.23.2/go.mod h1:JJ0atRC0J/oWYiiVBmsSsrRnh92DhZPG4hFDcR04Rns= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute v1.29.0 h1:Lph6d8oPi38NHkOr6S55Nus/Pbbcp37m/J0ohgKAefs= -cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I= -cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= +cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= +cloud.google.com/go/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= +cloud.google.com/go/contactcenterinsights v1.11.0/go.mod h1:hutBdImE4XNZ1NV4vbPJKSFOnQruhC5Lj9bZqWMTKiU= +cloud.google.com/go/contactcenterinsights v1.11.1/go.mod h1:FeNP3Kg8iteKM80lMwSk3zZZKVxr+PGnAId6soKuXwE= +cloud.google.com/go/contactcenterinsights v1.11.2/go.mod h1:A9PIR5ov5cRcd28KlDbmmXE8Aay+Gccer2h4wzkYFso= +cloud.google.com/go/contactcenterinsights v1.11.3/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= +cloud.google.com/go/contactcenterinsights v1.12.0/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= +cloud.google.com/go/contactcenterinsights v1.12.1/go.mod h1:HHX5wrz5LHVAwfI2smIotQG9x8Qd6gYilaHcLLLmNis= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= +cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= +cloud.google.com/go/container v1.24.0/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= +cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4= +cloud.google.com/go/container v1.26.1/go.mod h1:5smONjPRUxeEpDG7bMKWfDL4sauswqEtnBK1/KKpR04= +cloud.google.com/go/container v1.26.2/go.mod h1:YlO84xCt5xupVbLaMY4s3XNE79MUJ+49VmkInr6HvF4= +cloud.google.com/go/container v1.27.1/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= +cloud.google.com/go/container v1.28.0/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= +cloud.google.com/go/container v1.29.0/go.mod h1:b1A1gJeTBXVLQ6GGw9/9M4FG94BEGsqJ5+t4d/3N7O4= +cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= +cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= +cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U= +cloud.google.com/go/containeranalysis v0.11.1/go.mod h1:rYlUOM7nem1OJMKwE1SadufX0JP3wnXj844EtZAwWLY= +cloud.google.com/go/containeranalysis v0.11.2/go.mod h1:xibioGBC1MD2j4reTyV1xY1/MvKaz+fyM9ENWhmIeP8= +cloud.google.com/go/containeranalysis v0.11.3/go.mod h1:kMeST7yWFQMGjiG9K7Eov+fPNQcGhb8mXj/UcTiWw9U= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/datacatalog v1.14.0/go.mod h1:h0PrGtlihoutNMp/uvwhawLQ9+c63Kz65UFqh49Yo+E= +cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= +cloud.google.com/go/datacatalog v1.16.0/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= +cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= +cloud.google.com/go/datacatalog v1.18.0/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= +cloud.google.com/go/datacatalog v1.18.1/go.mod h1:TzAWaz+ON1tkNr4MOcak8EBHX7wIRX/gZKM+yTVsv+A= +cloud.google.com/go/datacatalog v1.18.2/go.mod h1:SPVgWW2WEMuWHA+fHodYjmxPiMqcOiWfhc9OD5msigk= +cloud.google.com/go/datacatalog v1.18.3/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM= +cloud.google.com/go/datacatalog v1.19.0/go.mod h1:5FR6ZIF8RZrtml0VUao22FxhdjkoG+a0866rEnObryM= +cloud.google.com/go/datacatalog v1.19.2/go.mod h1:2YbODwmhpLM4lOFe3PuEhHK9EyTzQJ5AXgIy7EDKTEE= +cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= +cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= +cloud.google.com/go/dataflow v0.9.2/go.mod h1:vBfdBZ/ejlTaYIGB3zB4T08UshH70vbtZeMD+urnUSo= +cloud.google.com/go/dataflow v0.9.3/go.mod h1:HI4kMVjcHGTs3jTHW/kv3501YW+eloiJSLxkJa/vqFE= +cloud.google.com/go/dataflow v0.9.4/go.mod h1:4G8vAkHYCSzU8b/kmsoR2lWyHJD85oMJPHMtan40K8w= +cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= +cloud.google.com/go/dataform v0.8.2/go.mod h1:X9RIqDs6NbGPLR80tnYoPNiO1w0wenKTb8PxxlhTMKM= +cloud.google.com/go/dataform v0.8.3/go.mod h1:8nI/tvv5Fso0drO3pEjtowz58lodx8MVkdV2q0aPlqg= +cloud.google.com/go/dataform v0.9.1/go.mod h1:pWTg+zGQ7i16pyn0bS1ruqIE91SdL2FDMvEYu/8oQxs= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= +cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= +cloud.google.com/go/datafusion v1.7.2/go.mod h1:62K2NEC6DRlpNmI43WHMWf9Vg/YvN6QVi8EVwifElI0= +cloud.google.com/go/datafusion v1.7.3/go.mod h1:eoLt1uFXKGBq48jy9LZ+Is8EAVLnmn50lNncLzwYokE= +cloud.google.com/go/datafusion v1.7.4/go.mod h1:BBs78WTOLYkT4GVZIXQCZT3GFpkpDN4aBY4NDX/jVlM= +cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= +cloud.google.com/go/datalabeling v0.8.2/go.mod h1:cyDvGHuJWu9U/cLDA7d8sb9a0tWLEletStu2sTmg3BE= +cloud.google.com/go/datalabeling v0.8.3/go.mod h1:tvPhpGyS/V7lqjmb3V0TaDdGvhzgR1JoW7G2bpi2UTI= +cloud.google.com/go/datalabeling v0.8.4/go.mod h1:Z1z3E6LHtffBGrNUkKwbwbDxTiXEApLzIgmymj8A3S8= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.9.0/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.10.1/go.mod h1:1MzmBv8FvjYfc7vDdxhnLFNskikkB+3vl475/XdCDhs= +cloud.google.com/go/dataplex v1.10.2/go.mod h1:xdC8URdTrCrZMW6keY779ZT1cTOfV8KEPNsw+LTRT1Y= +cloud.google.com/go/dataplex v1.11.1/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= +cloud.google.com/go/dataplex v1.11.2/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= +cloud.google.com/go/dataplex v1.13.0/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= +cloud.google.com/go/dataplex v1.14.0/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataproc/v2 v2.0.1/go.mod h1:7Ez3KRHdFGcfY7GcevBbvozX+zyWGcwLJvvAMwCaoZ4= +cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY= +cloud.google.com/go/dataproc/v2 v2.2.1/go.mod h1:QdAJLaBjh+l4PVlVZcmrmhGccosY/omC1qwfQ61Zv/o= +cloud.google.com/go/dataproc/v2 v2.2.2/go.mod h1:aocQywVmQVF4i8CL740rNI/ZRpsaaC1Wh2++BJ7HEJ4= +cloud.google.com/go/dataproc/v2 v2.2.3/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= +cloud.google.com/go/dataproc/v2 v2.3.0/go.mod h1:G5R6GBc9r36SXv/RtZIVfB8SipI+xVn0bX5SxUzVYbY= +cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= +cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= +cloud.google.com/go/dataqna v0.8.2/go.mod h1:KNEqgx8TTmUipnQsScOoDpq/VlXVptUqVMZnt30WAPs= +cloud.google.com/go/dataqna v0.8.3/go.mod h1:wXNBW2uvc9e7Gl5k8adyAMnLush1KVV6lZUhB+rqNu4= +cloud.google.com/go/dataqna v0.8.4/go.mod h1:mySRKjKg5Lz784P6sCov3p1QD+RZQONRMRjzGNcFd0c= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= +cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.13.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= +cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= +cloud.google.com/go/datastream v1.10.1/go.mod h1:7ngSYwnw95YFyTd5tOGBxHlOZiL+OtpjheqU7t2/s/c= +cloud.google.com/go/datastream v1.10.2/go.mod h1:W42TFgKAs/om6x/CdXX5E4oiAsKlH+e8MTGy81zdYt0= +cloud.google.com/go/datastream v1.10.3/go.mod h1:YR0USzgjhqA/Id0Ycu1VvZe8hEWwrkjuXrGbzeDOSEA= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= +cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= +cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= +cloud.google.com/go/deploy v1.13.1/go.mod h1:8jeadyLkH9qu9xgO3hVWw8jVr29N1mnW42gRJT8GY6g= +cloud.google.com/go/deploy v1.14.1/go.mod h1:N8S0b+aIHSEeSr5ORVoC0+/mOPUysVt8ae4QkZYolAw= +cloud.google.com/go/deploy v1.14.2/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= +cloud.google.com/go/deploy v1.15.0/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= +cloud.google.com/go/deploy v1.16.0/go.mod h1:e5XOUI5D+YGldyLNZ21wbp9S8otJbBE4i88PtO9x/2g= +cloud.google.com/go/deploy v1.17.0/go.mod h1:XBr42U5jIr64t92gcpOXxNrqL2PStQCXHuKK5GRUuYo= +cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= +cloud.google.com/go/dialogflow v1.40.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= +cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= +cloud.google.com/go/dialogflow v1.44.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= +cloud.google.com/go/dialogflow v1.44.1/go.mod h1:n/h+/N2ouKOO+rbe/ZnI186xImpqvCVj2DdsWS/0EAk= +cloud.google.com/go/dialogflow v1.44.2/go.mod h1:QzFYndeJhpVPElnFkUXxdlptx0wPnBWLCBT9BvtC3/c= +cloud.google.com/go/dialogflow v1.44.3/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= +cloud.google.com/go/dialogflow v1.47.0/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= +cloud.google.com/go/dialogflow v1.48.0/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= +cloud.google.com/go/dialogflow v1.48.1/go.mod h1:C1sjs2/g9cEwjCltkKeYp3FFpz8BOzNondEaAlCpt+A= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= +cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= +cloud.google.com/go/dlp v1.10.2/go.mod h1:ZbdKIhcnyhILgccwVDzkwqybthh7+MplGC3kZVZsIOQ= +cloud.google.com/go/dlp v1.10.3/go.mod h1:iUaTc/ln8I+QT6Ai5vmuwfw8fqTk2kaz0FvCwhLCom0= +cloud.google.com/go/dlp v1.11.1/go.mod h1:/PA2EnioBeXTL/0hInwgj0rfsQb3lpE3R8XUJxqUNKI= +cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= +cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= +cloud.google.com/go/documentai v1.22.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= +cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= +cloud.google.com/go/documentai v1.23.0/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= +cloud.google.com/go/documentai v1.23.2/go.mod h1:Q/wcRT+qnuXOpjAkvOV4A+IeQl04q2/ReT7SSbytLSo= +cloud.google.com/go/documentai v1.23.4/go.mod h1:4MYAaEMnADPN1LPN5xboDR5QVB6AgsaxgFdJhitlE2Y= +cloud.google.com/go/documentai v1.23.5/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= +cloud.google.com/go/documentai v1.23.6/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= +cloud.google.com/go/documentai v1.23.7/go.mod h1:ghzBsyVTiVdkfKaUCum/9bGBEyBjDO4GfooEcYKhN+g= +cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= +cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= +cloud.google.com/go/domains v0.9.2/go.mod h1:3YvXGYzZG1Temjbk7EyGCuGGiXHJwVNmwIf+E/cUp5I= +cloud.google.com/go/domains v0.9.3/go.mod h1:29k66YNDLDY9LCFKpGFeh6Nj9r62ZKm5EsUJxAl84KU= +cloud.google.com/go/domains v0.9.4/go.mod h1:27jmJGShuXYdUNjyDG0SodTfT5RwLi7xmH334Gvi3fY= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= +cloud.google.com/go/edgecontainer v1.1.2/go.mod h1:wQRjIzqxEs9e9wrtle4hQPSR1Y51kqN75dgF7UllZZ4= +cloud.google.com/go/edgecontainer v1.1.3/go.mod h1:Ll2DtIABzEfaxaVSbwj3QHFaOOovlDFiWVDu349jSsA= +cloud.google.com/go/edgecontainer v1.1.4/go.mod h1:AvFdVuZuVGdgaE5YvlL1faAoa1ndRR/5XhXZvPBHbsE= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= +cloud.google.com/go/essentialcontacts v1.6.3/go.mod h1:yiPCD7f2TkP82oJEFXFTou8Jl8L6LBRPeBEkTaO0Ggo= +cloud.google.com/go/essentialcontacts v1.6.4/go.mod h1:iju5Vy3d9tJUg0PYMd1nHhjV7xoCXaOAVabrwLaPBEM= +cloud.google.com/go/essentialcontacts v1.6.5/go.mod h1:jjYbPzw0x+yglXC890l6ECJWdYeZ5dlYACTFL0U/VuM= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= +cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= +cloud.google.com/go/eventarc v1.13.1/go.mod h1:EqBxmGHFrruIara4FUQ3RHlgfCn7yo1HYsu2Hpt/C3Y= +cloud.google.com/go/eventarc v1.13.2/go.mod h1:X9A80ShVu19fb4e5sc/OLV7mpFUKZMwfJFeeWhcIObM= +cloud.google.com/go/eventarc v1.13.3/go.mod h1:RWH10IAZIRcj1s/vClXkBgMHwh59ts7hSWcqD3kaclg= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= +cloud.google.com/go/filestore v1.7.2/go.mod h1:TYOlyJs25f/omgj+vY7/tIG/E7BX369triSPzE4LdgE= +cloud.google.com/go/filestore v1.7.3/go.mod h1:Qp8WaEERR3cSkxToxFPHh/b8AACkSut+4qlCjAmKTV0= +cloud.google.com/go/filestore v1.7.4/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= +cloud.google.com/go/filestore v1.8.0/go.mod h1:S5JCxIbFjeBhWMTfIYH2Jx24J6BqjwpkkPl+nBA5DlI= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= +cloud.google.com/go/firestore v1.12.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= +cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8= +cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= +cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= +cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= +cloud.google.com/go/functions v1.15.2/go.mod h1:CHAjtcR6OU4XF2HuiVeriEdELNcnvRZSk1Q8RMqy4lE= +cloud.google.com/go/functions v1.15.3/go.mod h1:r/AMHwBheapkkySEhiZYLDBwVJCdlRwsm4ieJu35/Ug= +cloud.google.com/go/functions v1.15.4/go.mod h1:CAsTc3VlRMVvx+XqXxKqVevguqJpnVip4DdonFsX28I= +cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gkebackup v1.3.0/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= +cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= +cloud.google.com/go/gkebackup v1.3.2/go.mod h1:OMZbXzEJloyXMC7gqdSB+EOEQ1AKcpGYvO3s1ec5ixk= +cloud.google.com/go/gkebackup v1.3.3/go.mod h1:eMk7/wVV5P22KBakhQnJxWSVftL1p4VBFLpv0kIft7I= +cloud.google.com/go/gkebackup v1.3.4/go.mod h1:gLVlbM8h/nHIs09ns1qx3q3eaXcGSELgNu1DWXYz1HI= +cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= +cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= +cloud.google.com/go/gkeconnect v0.8.2/go.mod h1:6nAVhwchBJYgQCXD2pHBFQNiJNyAd/wyxljpaa6ZPrY= +cloud.google.com/go/gkeconnect v0.8.3/go.mod h1:i9GDTrfzBSUZGCe98qSu1B8YB8qfapT57PenIb820Jo= +cloud.google.com/go/gkeconnect v0.8.4/go.mod h1:84hZz4UMlDCKl8ifVW8layK4WHlMAFeq8vbzjU0yJkw= +cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= +cloud.google.com/go/gkehub v0.14.2/go.mod h1:iyjYH23XzAxSdhrbmfoQdePnlMj2EWcvnR+tHdBQsCY= +cloud.google.com/go/gkehub v0.14.3/go.mod h1:jAl6WafkHHW18qgq7kqcrXYzN08hXeK/Va3utN8VKg8= +cloud.google.com/go/gkehub v0.14.4/go.mod h1:Xispfu2MqnnFt8rV/2/3o73SK1snL8s9dYJ9G2oQMfc= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= +cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= +cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= +cloud.google.com/go/gkemulticloud v1.0.1/go.mod h1:AcrGoin6VLKT/fwZEYuqvVominLriQBCKmbjtnbMjG8= +cloud.google.com/go/gkemulticloud v1.0.2/go.mod h1:+ee5VXxKb3H1l4LZAcgWB/rvI16VTNTrInWxDjAGsGo= +cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= +cloud.google.com/go/gkemulticloud v1.1.0/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= +cloud.google.com/go/gsuiteaddons v1.6.2/go.mod h1:K65m9XSgs8hTF3X9nNTPi8IQueljSdYo9F+Mi+s4MyU= +cloud.google.com/go/gsuiteaddons v1.6.3/go.mod h1:sCFJkZoMrLZT3JTb8uJqgKPNshH2tfXeCwTFRebTq48= +cloud.google.com/go/gsuiteaddons v1.6.4/go.mod h1:rxtstw7Fx22uLOXBpsvb9DUbC+fiXs7rF4U29KHM/pE= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +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/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8= +cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= +cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.3/go.mod h1:3khUlaBXfPKKe7huYgEpDn6FtgRyMEqbkvBxrQyY5SE= +cloud.google.com/go/iam v1.1.4/go.mod h1:l/rg8l1AaA+VFMho/HYx2Vv6xinPSLMF8qfhRPIZ0L8= +cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= +cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY= +cloud.google.com/go/iap v1.9.1/go.mod h1:SIAkY7cGMLohLSdBR25BuIxO+I4fXJiL06IBL7cy/5Q= +cloud.google.com/go/iap v1.9.2/go.mod h1:GwDTOs047PPSnwRD0Us5FKf4WDRcVvHg1q9WVkKBhdI= +cloud.google.com/go/iap v1.9.3/go.mod h1:DTdutSZBqkkOm2HEOTBzhZxh2mwwxshfD/h3yofAiCw= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= +cloud.google.com/go/ids v1.4.2/go.mod h1:3vw8DX6YddRu9BncxuzMyWn0g8+ooUjI2gslJ7FH3vk= +cloud.google.com/go/ids v1.4.3/go.mod h1:9CXPqI3GedjmkjbMWCUhMZ2P2N7TUMzAkVXYEH2orYU= +cloud.google.com/go/ids v1.4.4/go.mod h1:z+WUc2eEl6S/1aZWzwtVNWoSZslgzPxAboS0lZX0HjI= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= +cloud.google.com/go/iot v1.7.2/go.mod h1:q+0P5zr1wRFpw7/MOgDXrG/HVA+l+cSwdObffkrpnSg= +cloud.google.com/go/iot v1.7.3/go.mod h1:t8itFchkol4VgNbHnIq9lXoOOtHNR3uAACQMYbN9N4I= +cloud.google.com/go/iot v1.7.4/go.mod h1:3TWqDVvsddYBG++nHSZmluoCAVGr1hAcabbWZNKEZLk= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= +cloud.google.com/go/kms v1.11.0/go.mod h1:hwdiYC0xjnWsKQQCQQmIQnS9asjYVSK6jtXm+zFqXLM= +cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= +cloud.google.com/go/kms v1.15.0/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= +cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= +cloud.google.com/go/kms v1.15.3/go.mod h1:AJdXqHxS2GlPyduM99s9iGqi2nwbviBbhV/hdmt4iOQ= +cloud.google.com/go/kms v1.15.4/go.mod h1:L3Sdj6QTHK8dfwK5D1JLsAyELsNMnd3tAIwGS4ltKpc= +cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= +cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= +cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= +cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ= +cloud.google.com/go/language v1.11.1/go.mod h1:Xyid9MG9WOX3utvDbpX7j3tXDmmDooMyMDqgUVpH17U= +cloud.google.com/go/language v1.12.1/go.mod h1:zQhalE2QlQIxbKIZt54IASBzmZpN/aDASea5zl1l+J4= +cloud.google.com/go/language v1.12.2/go.mod h1:9idWapzr/JKXBBQ4lWqVX/hcadxB194ry20m/bTrhWc= +cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= +cloud.google.com/go/lifesciences v0.9.2/go.mod h1:QHEOO4tDzcSAzeJg7s2qwnLM2ji8IRpQl4p6m5Z9yTA= +cloud.google.com/go/lifesciences v0.9.3/go.mod h1:gNGBOJV80IWZdkd+xz4GQj4mbqaz737SCLHn2aRhQKM= +cloud.google.com/go/lifesciences v0.9.4/go.mod h1:bhm64duKhMi7s9jR9WYJYvjAFJwRqNj+Nia7hF0Z7JA= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI= +cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ= +cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +cloud.google.com/go/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs= +cloud.google.com/go/longrunning v0.5.3/go.mod h1:y/0ga59EYu58J6SHmmQOvekvND2qODbu8ywBBW7EK7Y= +cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= +cloud.google.com/go/managedidentities v1.6.2/go.mod h1:5c2VG66eCa0WIq6IylRk3TBW83l161zkFvCj28X7jn8= +cloud.google.com/go/managedidentities v1.6.3/go.mod h1:tewiat9WLyFN0Fi7q1fDD5+0N4VUoL0SCX0OTCthZq4= +cloud.google.com/go/managedidentities v1.6.4/go.mod h1:WgyaECfHmF00t/1Uk8Oun3CQ2PGUtjc3e9Alh79wyiM= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/maps v1.3.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= +cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= +cloud.google.com/go/maps v1.4.1/go.mod h1:BxSa0BnW1g2U2gNdbq5zikLlHUuHW0GFWh7sgML2kIY= +cloud.google.com/go/maps v1.5.1/go.mod h1:NPMZw1LJwQZYCfz4y+EIw+SI+24A4bpdFJqdKVr0lt4= +cloud.google.com/go/maps v1.6.1/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18= +cloud.google.com/go/maps v1.6.2/go.mod h1:4+buOHhYXFBp58Zj/K+Lc1rCmJssxxF4pJ5CJnhdz18= +cloud.google.com/go/maps v1.6.3/go.mod h1:VGAn809ADswi1ASofL5lveOHPnE6Rk/SFTTBx1yuOLw= +cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= +cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= +cloud.google.com/go/mediatranslation v0.8.2/go.mod h1:c9pUaDRLkgHRx3irYE5ZC8tfXGrMYwNZdmDqKMSfFp8= +cloud.google.com/go/mediatranslation v0.8.3/go.mod h1:F9OnXTy336rteOEywtY7FOqCk+J43o2RF638hkOQl4Y= +cloud.google.com/go/mediatranslation v0.8.4/go.mod h1:9WstgtNVAdN53m6TQa5GjIjLqKQPXe74hwSCxUP6nj4= +cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= +cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= +cloud.google.com/go/memcache v1.10.2/go.mod h1:f9ZzJHLBrmd4BkguIAa/l/Vle6uTHzHokdnzSWOdQ6A= +cloud.google.com/go/memcache v1.10.3/go.mod h1:6z89A41MT2DVAW0P4iIRdu5cmRTsbsFn4cyiIx8gbwo= +cloud.google.com/go/memcache v1.10.4/go.mod h1:v/d8PuC8d1gD6Yn5+I3INzLR01IDn0N4Ym56RgikSI0= +cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= +cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= +cloud.google.com/go/metastore v1.13.0/go.mod h1:URDhpG6XLeh5K+Glq0NOt74OfrPKTwS62gEPZzb5SOk= +cloud.google.com/go/metastore v1.13.1/go.mod h1:IbF62JLxuZmhItCppcIfzBBfUFq0DIB9HPDoLgWrVOU= +cloud.google.com/go/metastore v1.13.2/go.mod h1:KS59dD+unBji/kFebVp8XU/quNSyo8b6N6tPGspKszA= +cloud.google.com/go/metastore v1.13.3/go.mod h1:K+wdjXdtkdk7AQg4+sXS8bRrQa9gcOr+foOMF2tqINE= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= +cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY= +cloud.google.com/go/monitoring v1.16.1/go.mod h1:6HsxddR+3y9j+o/cMJH6q/KJ/CBTvM/38L/1m7bTRJ4= +cloud.google.com/go/monitoring v1.16.2/go.mod h1:B44KGwi4ZCF8Rk/5n+FWeispDXoKSk9oss2QNlXJBgc= +cloud.google.com/go/monitoring v1.16.3/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= +cloud.google.com/go/monitoring v1.17.0/go.mod h1:KwSsX5+8PnXv5NJnICZzW2R8pWTis8ypC4zmdRD63Tw= cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= +cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= +cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= +cloud.google.com/go/networkconnectivity v1.14.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= +cloud.google.com/go/networkconnectivity v1.14.1/go.mod h1:LyGPXR742uQcDxZ/wv4EI0Vu5N6NKJ77ZYVnDe69Zug= +cloud.google.com/go/networkconnectivity v1.14.2/go.mod h1:5UFlwIisZylSkGG1AdwK/WZUaoz12PKu6wODwIbFzJo= +cloud.google.com/go/networkconnectivity v1.14.3/go.mod h1:4aoeFdrJpYEXNvrnfyD5kIzs8YtHg945Og4koAjHQek= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= +cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= +cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw= +cloud.google.com/go/networkmanagement v1.9.1/go.mod h1:CCSYgrQQvW73EJawO2QamemYcOb57LvrDdDU51F0mcI= +cloud.google.com/go/networkmanagement v1.9.2/go.mod h1:iDGvGzAoYRghhp4j2Cji7sF899GnfGQcQRQwgVOWnDw= +cloud.google.com/go/networkmanagement v1.9.3/go.mod h1:y7WMO1bRLaP5h3Obm4tey+NquUvB93Co1oh4wpL+XcU= +cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= +cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= +cloud.google.com/go/networksecurity v0.9.2/go.mod h1:jG0SeAttWzPMUILEHDUvFYdQTl8L/E/KC8iZDj85lEI= +cloud.google.com/go/networksecurity v0.9.3/go.mod h1:l+C0ynM6P+KV9YjOnx+kk5IZqMSLccdBqW6GUoF4p/0= +cloud.google.com/go/networksecurity v0.9.4/go.mod h1:E9CeMZ2zDsNBkr8axKSYm8XyTqNhiCHf1JO/Vb8mD1w= +cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= +cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k= +cloud.google.com/go/notebooks v1.10.1/go.mod h1:5PdJc2SgAybE76kFQCWrTfJolCOUQXF97e+gteUUA6A= +cloud.google.com/go/notebooks v1.11.1/go.mod h1:V2Zkv8wX9kDCGRJqYoI+bQAaoVeE5kSiz4yYHd2yJwQ= +cloud.google.com/go/notebooks v1.11.2/go.mod h1:z0tlHI/lREXC8BS2mIsUeR3agM1AkgLiS+Isov3SS70= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= +cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU= +cloud.google.com/go/optimization v1.5.1/go.mod h1:NC0gnUD5MWVAF7XLdoYVPmYYVth93Q6BUzqAq3ZwtV8= +cloud.google.com/go/optimization v1.6.1/go.mod h1:hH2RYPTTM9e9zOiTaYPTiGPcGdNZVnBSBxjIAJzUkqo= +cloud.google.com/go/optimization v1.6.2/go.mod h1:mWNZ7B9/EyMCcwNl1frUGEuY6CPijSkz88Fz2vwKPOY= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= +cloud.google.com/go/orchestration v1.8.2/go.mod h1:T1cP+6WyTmh6LSZzeUhvGf0uZVmJyTx7t8z7Vg87+A0= +cloud.google.com/go/orchestration v1.8.3/go.mod h1:xhgWAYqlbYjlz2ftbFghdyqENYW+JXuhBx9KsjMoGHs= +cloud.google.com/go/orchestration v1.8.4/go.mod h1:d0lywZSVYtIoSZXb0iFjv9SaL13PGyVOKDxqGxEf/qI= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= +cloud.google.com/go/orgpolicy v1.11.0/go.mod h1:2RK748+FtVvnfuynxBzdnyu7sygtoZa1za/0ZfpOs1M= +cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= +cloud.google.com/go/orgpolicy v1.11.2/go.mod h1:biRDpNwfyytYnmCRWZWxrKF22Nkz9eNVj9zyaBdpm1o= +cloud.google.com/go/orgpolicy v1.11.3/go.mod h1:oKAtJ/gkMjum5icv2aujkP4CxROxPXsBbYGCDbPO8MM= +cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= +cloud.google.com/go/orgpolicy v1.12.0/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= +cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= +cloud.google.com/go/osconfig v1.12.0/go.mod h1:8f/PaYzoS3JMVfdfTubkowZYGmAhUCjjwnjqWI7NVBc= +cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= +cloud.google.com/go/osconfig v1.12.2/go.mod h1:eh9GPaMZpI6mEJEuhEjUJmaxvQ3gav+fFEJon1Y8Iw0= +cloud.google.com/go/osconfig v1.12.3/go.mod h1:L/fPS8LL6bEYUi1au832WtMnPeQNT94Zo3FwwV1/xGM= +cloud.google.com/go/osconfig v1.12.4/go.mod h1:B1qEwJ/jzqSRslvdOCI8Kdnp0gSng0xW4LOnIebQomA= +cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= +cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= +cloud.google.com/go/oslogin v1.11.0/go.mod h1:8GMTJs4X2nOAUVJiPGqIWVcDaF0eniEto3xlOxaboXE= +cloud.google.com/go/oslogin v1.11.1/go.mod h1:OhD2icArCVNUxKqtK0mcSmKL7lgr0LVlQz+v9s1ujTg= +cloud.google.com/go/oslogin v1.12.1/go.mod h1:VfwTeFJGbnakxAY236eN8fsnglLiVXndlbcNomY4iZU= +cloud.google.com/go/oslogin v1.12.2/go.mod h1:CQ3V8Jvw4Qo4WRhNPF0o+HAM4DiLuE27Ul9CX9g2QdY= +cloud.google.com/go/oslogin v1.13.0/go.mod h1:xPJqLwpTZ90LSE5IL1/svko+6c5avZLluiyylMb/sRA= +cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= +cloud.google.com/go/phishingprotection v0.8.2/go.mod h1:LhJ91uyVHEYKSKcMGhOa14zMMWfbEdxG032oT6ECbC8= +cloud.google.com/go/phishingprotection v0.8.3/go.mod h1:3B01yO7T2Ra/TMojifn8EoGd4G9jts/6cIO0DgDY9J8= +cloud.google.com/go/phishingprotection v0.8.4/go.mod h1:6b3kNPAc2AQ6jZfFHioZKg9MQNybDg4ixFd4RPZZ2nE= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= +cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= +cloud.google.com/go/policytroubleshooter v1.8.0/go.mod h1:tmn5Ir5EToWe384EuboTcVQT7nTag2+DuH3uHmKd1HU= +cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64= +cloud.google.com/go/policytroubleshooter v1.9.1/go.mod h1:MYI8i0bCrL8cW+VHN1PoiBTyNZTstCg2WUw2eVC4c4U= +cloud.google.com/go/policytroubleshooter v1.10.1/go.mod h1:5C0rhT3TDZVxAu8813bwmTvd57Phbl8mr9F4ipOsxEs= +cloud.google.com/go/policytroubleshooter v1.10.2/go.mod h1:m4uF3f6LseVEnMV6nknlN2vYGRb+75ylQwJdnOXfnv0= +cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= +cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= +cloud.google.com/go/privatecatalog v0.9.2/go.mod h1:RMA4ATa8IXfzvjrhhK8J6H4wwcztab+oZph3c6WmtFc= +cloud.google.com/go/privatecatalog v0.9.3/go.mod h1:K5pn2GrVmOPjXz3T26mzwXLcKivfIJ9R5N79AFCF9UE= +cloud.google.com/go/privatecatalog v0.9.4/go.mod h1:SOjm93f+5hp/U3PqMZAHTtBtluqLygrDrVO8X8tYtG0= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsub v1.34.0/go.mod h1:alj4l4rBg+N3YTFDDC+/YyFTs6JAjam2QfYsddcAW4c= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= +cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= +cloud.google.com/go/recaptchaenterprise/v2 v2.8.0/go.mod h1:QuE8EdU9dEnesG8/kG3XuJyNsjEqMlMzg3v3scCJ46c= +cloud.google.com/go/recaptchaenterprise/v2 v2.8.1/go.mod h1:JZYZJOeZjgSSTGP4uz7NlQ4/d1w5hGmksVgM0lbEij0= +cloud.google.com/go/recaptchaenterprise/v2 v2.8.2/go.mod h1:kpaDBOpkwD4G0GVMzG1W6Doy1tFFC97XAV3xy+Rd/pw= +cloud.google.com/go/recaptchaenterprise/v2 v2.8.3/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= +cloud.google.com/go/recaptchaenterprise/v2 v2.8.4/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= +cloud.google.com/go/recaptchaenterprise/v2 v2.9.0/go.mod h1:Dak54rw6lC2gBY8FBznpOCAR58wKf+R+ZSJRoeJok4w= +cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= +cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= +cloud.google.com/go/recommendationengine v0.8.2/go.mod h1:QIybYHPK58qir9CV2ix/re/M//Ty10OxjnnhWdaKS1Y= +cloud.google.com/go/recommendationengine v0.8.3/go.mod h1:m3b0RZV02BnODE9FeSvGv1qibFo8g0OnmB/RMwYy4V8= +cloud.google.com/go/recommendationengine v0.8.4/go.mod h1:GEteCf1PATl5v5ZsQ60sTClUE0phbWmo3rQ1Js8louU= +cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= +cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= +cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII= +cloud.google.com/go/recommender v1.11.1/go.mod h1:sGwFFAyI57v2Hc5LbIj+lTwXipGu9NW015rkaEM5B18= +cloud.google.com/go/recommender v1.11.2/go.mod h1:AeoJuzOvFR/emIcXdVFkspVXVTYpliRCmKNYDnyBv6Y= +cloud.google.com/go/recommender v1.11.3/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= +cloud.google.com/go/recommender v1.12.0/go.mod h1:+FJosKKJSId1MBFeJ/TTyoGQZiEelQQIZMKYYD8ruK4= +cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= +cloud.google.com/go/redis v1.13.2/go.mod h1:0Hg7pCMXS9uz02q+LoEVl5dNHUkIQv+C/3L76fandSA= +cloud.google.com/go/redis v1.13.3/go.mod h1:vbUpCKUAZSYzFcWKmICnYgRAhTFg9r+djWqFxDYXi4U= +cloud.google.com/go/redis v1.14.1/go.mod h1:MbmBxN8bEnQI4doZPC1BzADU4HGocHBk2de3SbgOkqs= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= +cloud.google.com/go/resourcemanager v1.9.2/go.mod h1:OujkBg1UZg5lX2yIyMo5Vz9O5hf7XQOSV7WxqxxMtQE= +cloud.google.com/go/resourcemanager v1.9.3/go.mod h1:IqrY+g0ZgLsihcfcmqSe+RKp1hzjXwG904B92AwBz6U= +cloud.google.com/go/resourcemanager v1.9.4/go.mod h1:N1dhP9RFvo3lUfwtfLWVxfUWq8+KUQ+XLlHLH3BoFJ0= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= +cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= +cloud.google.com/go/resourcesettings v1.6.2/go.mod h1:mJIEDd9MobzunWMeniaMp6tzg4I2GvD3TTmPkc8vBXk= +cloud.google.com/go/resourcesettings v1.6.3/go.mod h1:pno5D+7oDYkMWZ5BpPsb4SO0ewg3IXcmmrUZaMJrFic= +cloud.google.com/go/resourcesettings v1.6.4/go.mod h1:pYTTkWdv2lmQcjsthbZLNBP4QW140cs7wqA3DuqErVI= +cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= +cloud.google.com/go/retail v1.14.2/go.mod h1:W7rrNRChAEChX336QF7bnMxbsjugcOCPU44i5kbLiL8= +cloud.google.com/go/retail v1.14.3/go.mod h1:Omz2akDHeSlfCq8ArPKiBxlnRpKEBjUH386JYFLUvXo= +cloud.google.com/go/retail v1.14.4/go.mod h1:l/N7cMtY78yRnJqp5JW8emy7MB1nz8E4t2yfOmklYfg= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo= +cloud.google.com/go/run v1.3.0/go.mod h1:S/osX/4jIPZGg+ssuqh6GNgg7syixKe3YnprwehzHKU= +cloud.google.com/go/run v1.3.1/go.mod h1:cymddtZOzdwLIAsmS6s+Asl4JoXIDm/K1cpZTxV4Q5s= +cloud.google.com/go/run v1.3.2/go.mod h1:SIhmqArbjdU/D9M6JoHaAqnAMKLFtXaVdNeq04NjnVE= +cloud.google.com/go/run v1.3.3/go.mod h1:WSM5pGyJ7cfYyYbONVQBN4buz42zFqwG67Q3ch07iK4= +cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= +cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= +cloud.google.com/go/scheduler v1.10.2/go.mod h1:O3jX6HRH5eKCA3FutMw375XHZJudNIKVonSCHv7ropY= +cloud.google.com/go/scheduler v1.10.3/go.mod h1:8ANskEM33+sIbpJ+R4xRfw/jzOG+ZFE8WVLy7/yGvbc= +cloud.google.com/go/scheduler v1.10.4/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= +cloud.google.com/go/scheduler v1.10.5/go.mod h1:MTuXcrJC9tqOHhixdbHDFSIuh7xZF2IysiINDuiq6NI= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= +cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= +cloud.google.com/go/secretmanager v1.11.2/go.mod h1:MQm4t3deoSub7+WNwiC4/tRYgDBHJgJPvswqQVB1Vss= +cloud.google.com/go/secretmanager v1.11.3/go.mod h1:0bA2o6FabmShrEy328i67aV+65XoUFFSmVeLBn/51jI= +cloud.google.com/go/secretmanager v1.11.4/go.mod h1:wreJlbS9Zdq21lMzWmJ0XhWW2ZxgPeahsqeV/vZoJ3w= +cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= +cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= +cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= +cloud.google.com/go/security v1.15.2/go.mod h1:2GVE/v1oixIRHDaClVbHuPcZwAqFM28mXuAKCfMgYIg= +cloud.google.com/go/security v1.15.3/go.mod h1:gQ/7Q2JYUZZgOzqKtw9McShH+MjNvtDpL40J1cT+vBs= +cloud.google.com/go/security v1.15.4/go.mod h1:oN7C2uIZKhxCLiAAijKUCuHLZbIt/ghYEo8MqwD/Ty4= +cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= +cloud.google.com/go/securitycenter v1.23.1/go.mod h1:w2HV3Mv/yKhbXKwOCu2i8bCuLtNP1IMHuiYQn4HJq5s= +cloud.google.com/go/securitycenter v1.24.1/go.mod h1:3h9IdjjHhVMXdQnmqzVnM7b0wMn/1O/U20eWVpMpZjI= +cloud.google.com/go/securitycenter v1.24.2/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= +cloud.google.com/go/securitycenter v1.24.3/go.mod h1:l1XejOngggzqwr4Fa2Cn+iWZGf+aBLTXtB/vXjy5vXM= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= +cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= +cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= +cloud.google.com/go/servicedirectory v1.11.1/go.mod h1:tJywXimEWzNzw9FvtNjsQxxJ3/41jseeILgwU/QLrGI= +cloud.google.com/go/servicedirectory v1.11.2/go.mod h1:KD9hCLhncWRV5jJphwIpugKwM5bn1x0GyVVD4NO8mGg= +cloud.google.com/go/servicedirectory v1.11.3/go.mod h1:LV+cHkomRLr67YoQy3Xq2tUXBGOs5z5bPofdq7qtiAw= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= +cloud.google.com/go/shell v1.7.2/go.mod h1:KqRPKwBV0UyLickMn0+BY1qIyE98kKyI216sH/TuHmc= +cloud.google.com/go/shell v1.7.3/go.mod h1:cTTEz/JdaBsQAeTQ3B6HHldZudFoYBOqjteev07FbIc= +cloud.google.com/go/shell v1.7.4/go.mod h1:yLeXB8eKLxw0dpEmXQ/FjriYrBijNsONpwnWsdPqlKM= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= +cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= +cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= +cloud.google.com/go/spanner v1.50.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= +cloud.google.com/go/spanner v1.51.0/go.mod h1:c5KNo5LQ1X5tJwma9rSQZsXNBDNvj4/n8BVc3LNahq0= +cloud.google.com/go/spanner v1.53.0/go.mod h1:liG4iCeLqm5L3fFLU5whFITqP0e0orsAW1uUSrd4rws= +cloud.google.com/go/spanner v1.53.1/go.mod h1:liG4iCeLqm5L3fFLU5whFITqP0e0orsAW1uUSrd4rws= +cloud.google.com/go/spanner v1.54.0/go.mod h1:wZvSQVBgngF0Gq86fKup6KIYmN2be7uOKjtK97X+bQU= +cloud.google.com/go/spanner v1.55.0/go.mod h1:HXEznMUVhC+PC+HDyo9YFG2Ajj5BQDkcbqB9Z2Ffxi0= +cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= +cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= +cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= +cloud.google.com/go/speech v1.19.1/go.mod h1:WcuaWz/3hOlzPFOVo9DUsblMIHwxP589y6ZMtaG+iAA= +cloud.google.com/go/speech v1.19.2/go.mod h1:2OYFfj+Ch5LWjsaSINuCZsre/789zlcCI3SY4oAi2oI= +cloud.google.com/go/speech v1.20.1/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= +cloud.google.com/go/speech v1.21.0/go.mod h1:wwolycgONvfz2EDU8rKuHRW3+wc9ILPsAWoikBEWavY= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= cloud.google.com/go/storage v1.49.0 h1:zenOPBOWHCnojRd9aJZAyQXBYqkJkdQS42dxL55CIMw= cloud.google.com/go/storage v1.49.0/go.mod h1:k1eHhhpLvrPjVGfo0mOUPEJ4Y2+a/Hv5PiwehZI9qGU= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= +cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= +cloud.google.com/go/storagetransfer v1.10.1/go.mod h1:rS7Sy0BtPviWYTTJVWCSV4QrbBitgPeuK4/FKa4IdLs= +cloud.google.com/go/storagetransfer v1.10.2/go.mod h1:meIhYQup5rg9juQJdyppnA/WLQCOguxtk1pr3/vBWzA= +cloud.google.com/go/storagetransfer v1.10.3/go.mod h1:Up8LY2p6X68SZ+WToswpQbQHnJpOty/ACcMafuey8gc= +cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= +cloud.google.com/go/talent v1.6.3/go.mod h1:xoDO97Qd4AK43rGjJvyBHMskiEf3KulgYzcH6YWOVoo= +cloud.google.com/go/talent v1.6.4/go.mod h1:QsWvi5eKeh6gG2DlBkpMaFYZYrYUnIpo34f6/V5QykY= +cloud.google.com/go/talent v1.6.5/go.mod h1:Mf5cma696HmE+P2BWJ/ZwYqeJXEeU0UqjHFXVLadEDI= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= +cloud.google.com/go/texttospeech v1.7.2/go.mod h1:VYPT6aTOEl3herQjFHYErTlSZJ4vB00Q2ZTmuVgluD4= +cloud.google.com/go/texttospeech v1.7.3/go.mod h1:Av/zpkcgWfXlDLRYob17lqMstGZ3GqlvJXqKMp2u8so= +cloud.google.com/go/texttospeech v1.7.4/go.mod h1:vgv0002WvR4liGuSd5BJbWy4nDn5Ozco0uJymY5+U74= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= +cloud.google.com/go/tpu v1.6.2/go.mod h1:NXh3NDwt71TsPZdtGWgAG5ThDfGd32X1mJ2cMaRlVgU= +cloud.google.com/go/tpu v1.6.3/go.mod h1:lxiueqfVMlSToZY1151IaZqp89ELPSrk+3HIQ5HRkbY= +cloud.google.com/go/tpu v1.6.4/go.mod h1:NAm9q3Rq2wIlGnOhpYICNI7+bpBebMJbh0yyp3aNw1Y= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= +cloud.google.com/go/trace v1.10.2/go.mod h1:NPXemMi6MToRFcSxRl2uDnu/qAlAQ3oULUphcHGh1vA= +cloud.google.com/go/trace v1.10.3/go.mod h1:Ke1bgfc73RV3wUFml+uQp7EsDw4dGaETLxB7Iq/r4CY= +cloud.google.com/go/trace v1.10.4/go.mod h1:Nso99EDIK8Mj5/zmB+iGr9dosS/bzWCJ8wGmE6TXNWY= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.8.2/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.9.1/go.mod h1:TWIgDZknq2+JD4iRcojgeDtqGEp154HN/uL6hMvylS8= +cloud.google.com/go/translate v1.9.2/go.mod h1:E3Tc6rUTsQkVrXW6avbUhKJSr7ZE3j7zNmqzXKHqRrY= +cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= +cloud.google.com/go/translate v1.10.0/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= +cloud.google.com/go/video v1.19.0/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= +cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM= +cloud.google.com/go/video v1.20.1/go.mod h1:3gJS+iDprnj8SY6pe0SwLeC5BUW80NjhwX7INWEuWGU= +cloud.google.com/go/video v1.20.2/go.mod h1:lrixr5JeKNThsgfM9gqtwb6Okuqzfo4VrY2xynaViTA= +cloud.google.com/go/video v1.20.3/go.mod h1:TnH/mNZKVHeNtpamsSPygSR0iHtvrR/cW1/GDjN5+GU= +cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= +cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= +cloud.google.com/go/videointelligence v1.11.2/go.mod h1:ocfIGYtIVmIcWk1DsSGOoDiXca4vaZQII1C85qtoplc= +cloud.google.com/go/videointelligence v1.11.3/go.mod h1:tf0NUaGTjU1iS2KEkGWvO5hRHeCkFK3nPo0/cOZhZAo= +cloud.google.com/go/videointelligence v1.11.4/go.mod h1:kPBMAYsTPFiQxMLmmjpcZUMklJp3nC9+ipJJtprccD8= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= +cloud.google.com/go/vision/v2 v2.7.3/go.mod h1:V0IcLCY7W+hpMKXK1JYE0LV5llEqVmj+UJChjvA1WsM= +cloud.google.com/go/vision/v2 v2.7.4/go.mod h1:ynDKnsDN/0RtqkKxQZ2iatv3Dm9O+HfRb5djl7l4Vvw= +cloud.google.com/go/vision/v2 v2.7.5/go.mod h1:GcviprJLFfK9OLf0z8Gm6lQb6ZFUulvpZws+mm6yPLM= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= +cloud.google.com/go/vmmigration v1.7.2/go.mod h1:iA2hVj22sm2LLYXGPT1pB63mXHhrH1m/ruux9TwWLd8= +cloud.google.com/go/vmmigration v1.7.3/go.mod h1:ZCQC7cENwmSWlwyTrZcWivchn78YnFniEQYRWQ65tBo= +cloud.google.com/go/vmmigration v1.7.4/go.mod h1:yBXCmiLaB99hEl/G9ZooNx2GyzgsjKnw5fWcINRgD70= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= +cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= +cloud.google.com/go/vmwareengine v1.0.1/go.mod h1:aT3Xsm5sNx0QShk1Jc1B8OddrxAScYLwzVoaiXfdzzk= +cloud.google.com/go/vmwareengine v1.0.2/go.mod h1:xMSNjIk8/itYrz1JA8nV3Ajg4L4n3N+ugP8JKzk3OaA= +cloud.google.com/go/vmwareengine v1.0.3/go.mod h1:QSpdZ1stlbfKtyt6Iu19M6XRxjmXO+vb5a/R6Fvy2y4= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= +cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= +cloud.google.com/go/vpcaccess v1.7.2/go.mod h1:mmg/MnRHv+3e8FJUjeSibVFvQF1cCy2MsFaFqxeY1HU= +cloud.google.com/go/vpcaccess v1.7.3/go.mod h1:YX4skyfW3NC8vI3Fk+EegJnlYFatA+dXK4o236EUCUc= +cloud.google.com/go/vpcaccess v1.7.4/go.mod h1:lA0KTvhtEOb/VOdnH/gwPuOzGgM+CWsmGu6bb4IoMKk= +cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= +cloud.google.com/go/webrisk v1.9.2/go.mod h1:pY9kfDgAqxUpDBOrG4w8deLfhvJmejKB0qd/5uQIPBc= +cloud.google.com/go/webrisk v1.9.3/go.mod h1:RUYXe9X/wBDXhVilss7EDLW9ZNa06aowPuinUOPCXH8= +cloud.google.com/go/webrisk v1.9.4/go.mod h1:w7m4Ib4C+OseSr2GL66m0zMBywdrVNTDKsdEsfMl7X0= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= +cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= +cloud.google.com/go/websecurityscanner v1.6.2/go.mod h1:7YgjuU5tun7Eg2kpKgGnDuEOXWIrh8x8lWrJT4zfmas= +cloud.google.com/go/websecurityscanner v1.6.3/go.mod h1:x9XANObUFR+83Cya3g/B9M/yoHVqzxPnFtgF8yYGAXw= +cloud.google.com/go/websecurityscanner v1.6.4/go.mod h1:mUiyMQ+dGpPPRkHgknIZeCzSHJ45+fY4F52nZFDHm2o= +cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= +cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= +cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM= +cloud.google.com/go/workflows v1.12.1/go.mod h1:5A95OhD/edtOhQd/O741NSfIMezNTbCwLM1P1tBRGHM= +cloud.google.com/go/workflows v1.12.2/go.mod h1:+OmBIgNqYJPVggnMo9nqmizW0qEXHhmnAzK/CnBqsHc= +cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/depinject v1.1.0 h1:wLan7LG35VM7Yo6ov0jId3RHWCGRhe8E8bsuARorl5E= @@ -29,101 +1214,100 @@ cosmossdk.io/log v1.4.1 h1:wKdjfDRbDyZRuWa8M+9nuvpVYxrEOwbD/CA8hvhU8QM= cosmossdk.io/log v1.4.1/go.mod h1:k08v0Pyq+gCP6phvdI6RCGhLf/r425UT6Rk/m+o74rU= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= 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.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/CosmWasm/wasmvm/v2 v2.1.5 h1:cYI1Ook1IAA5DFA0IVvDQQboorNHZPAZ7emBBHFmXSQ= github.com/CosmWasm/wasmvm/v2 v2.1.5/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= -github.com/DataDog/appsec-internal-go v1.5.0 h1:8kS5zSx5T49uZ8dZTdT19QVAvC/B8ByyZdhQKYQWHno= -github.com/DataDog/appsec-internal-go v1.5.0/go.mod h1:pEp8gjfNLtEOmz+iZqC8bXhu0h4k7NUsW/qiQb34k1U= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 h1:bUMSNsw1iofWiju9yc1f+kBd33E3hMJtq9GuU602Iy8= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0/go.mod h1:HzySONXnAgSmIQfL6gOv9hWprKJkx8CicuXuUbmgWfo= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.48.1 h1:5nE6N3JSs2IG3xzMthNFhXfOaXlrsdgqmJ73lndFf8c= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.48.1/go.mod h1:Vc+snp0Bey4MrrJyiV2tVxxJb6BmLomPvN1RgAvjGaQ= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bpDIRRV4/gUtIBjh8Q= github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/datadog-go/v5 v5.3.0 h1:2q2qjFOb3RwAZNU+ez27ZVDwErJv5/VpbBPprz7Z+s8= -github.com/DataDog/datadog-go/v5 v5.3.0/go.mod h1:XRDJk1pTc00gm+ZDiBKsjh7oOOtJfYfglVCmFb8C2+Q= -github.com/DataDog/go-libddwaf/v2 v2.3.2 h1:pdi9xjWW57IpOpTeOyPuNveEDFLmmInsHDeuZk3TY34= -github.com/DataDog/go-libddwaf/v2 v2.3.2/go.mod h1:gsCdoijYQfj8ce/T2bEDNPZFIYnmHluAgVDpuQOWMZE= -github.com/DataDog/go-tuf v1.0.2-0.5.2 h1:EeZr937eKAWPxJ26IykAdWA4A0jQXJgkhUjqEI/w7+I= -github.com/DataDog/go-tuf v1.0.2-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= -github.com/DataDog/gostackparse v0.7.0 h1:i7dLkXHvYzHV308hnkvVGDL3BR4FWl7IsXNPz/IGQh4= -github.com/DataDog/gostackparse v0.7.0/go.mod h1:lTfqcJKqS9KnXQGnyQMCugq3u1FP6UZMfWR0aitKFMM= -github.com/DataDog/sketches-go v1.4.2 h1:gppNudE9d19cQ98RYABOetxIhpTCl4m7CnbRZjvVA/o= -github.com/DataDog/sketches-go v1.4.2/go.mod h1:xJIXldczJyyjnbDop7ZZcLxJdV3+7Kra7H1KMgpgkLk= github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 h1:8nn+rsCvTq9axyEh382S0PFLBeaFwNsT43IrPWzctRU= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= -github.com/InjectiveLabs/cometbft v1.0.1-inj.6 h1:Q+uiKcth/gU2RKjFiFk+7BXlqW6hEUyqYoj3x2uD7ug= -github.com/InjectiveLabs/cometbft v1.0.1-inj.6/go.mod h1:RgHHndb7wdtm9etmVj4tDn1NynC9YKIEJW9UUI3FCn4= -github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2 h1:uXsmBVeBickTjZ2GqPNYXShoboRw1m2Cq1bKv4QCe0o= -github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2/go.mod h1:Ivh6nSCTJPQOyfQo8dgnyu/T88it092sEqSrZSmTQN8= -github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.4 h1:SZ14jD3yyTUnpSRSRkYvTNNdknPiJkdUgh4pXRsxY5A= -github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.4/go.mod h1:8DbOKfQWQL1P4zmwqwgkde/CzWJfpp6EmCRONg6vLGw= -github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.4 h1:a1v0MiWEUK3RCMa7QChBJwajX2TkD1evuu1mbvk9taI= -github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.4/go.mod h1:iCp7MYEpKTFW/Tp/zgdeLLIMdll5bFwd5cchKCU/Zd4= -github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.4 h1:9qUT5v+S8PtLE8hrZgkVb5Ws/lTqqal7YAOEc/WFtMQ= -github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.4/go.mod h1:eKkKWHH8UVlnOKYkaXlm8bJg0aGqjQZHAeh/AEIWZlA= -github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.4 h1:n6lHOUR2/62KyRaOosOl0D+EAMr6NnoZw6GQPwTpurM= -github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.4/go.mod h1:01u7jX5X4U/LlkPfEONgYGMTsHtyLPeFm1cPHeLce2Y= -github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.4 h1:2Iljmx+Z88I9gX0G+EimGVWE5mjoNB2B2TT6Hq1k7dI= -github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.4/go.mod h1:9rR524Mje4ycQhYRcl2ETVoBz0co/8j2vR0goOPLQfg= -github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.4 h1:fy6KAfsk4WRgA3g5S4KV5UuoEcVHWjGayCipGqe/ppE= -github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.4/go.mod h1:nU5wYnMN3tqAHvK0kUuriS8ic1pY2VO/moBrUnGpGBg= -github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.4 h1:9eB4q7tXHBcOXa+VIGmf6cbwidMZzqCTPMff4iNXeIM= -github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.4/go.mod h1:jAAqnUW5nwAGNSaNiH9zBox31WBH6MbFAKh2rqPMK8Y= -github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.4 h1:NX9UWdq3ZhYMU21kcDzlWf4oRs4qb/REeGaJU0LF94s= -github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.4/go.mod h1:sVmI1LxDBhjiyST3iObdp44p56sExIBl2mBOR2BXGdw= -github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.4 h1:KxahR2doDkhBirwx8+jSgUH6UujuOt27kWVBFbEXmK4= -github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.4/go.mod h1:QEuHVZ4yBgUTorb0M2wle34bC6vyDNXrvE7INQOde2k= -github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.4 h1:SsEPRGitmcV/utuIiKMkenKZ8aO6zwBBBvCmMGDvcD0= -github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.4/go.mod h1:RzwBnxpUANKmfOnl8uN2v3gIl6+XSh4S1B9lNVxXQNk= -github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.4 h1:esFo9T14Bj41enz4ZJEuG5RQS2P9dwUr4b95jvbiGoo= -github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.4/go.mod h1:9uvjYHCSZimsO1woqmRYk53BfQtDAMv5STCcwhy2CnU= +github.com/InjectiveLabs/cometbft v1.0.1-inj.7 h1:TjiWFNOd7EcIw4hJV4T4pXSsXuF/kYJxYJkHGbVCZ5E= +github.com/InjectiveLabs/cometbft v1.0.1-inj.7/go.mod h1:GjHzF+48UzwdWUUG4uUD+e52h2L6Pq9rK4eL+oYIyBU= +github.com/InjectiveLabs/cometbft/api v1.0.0-inj.3 h1:nr+WvziQ0eehb9i0A85KCb71JjWQh+oIKF18946NEcE= +github.com/InjectiveLabs/cometbft/api v1.0.0-inj.3/go.mod h1:rr73UKPAv9CIvQBxZZ3KEVGIl2BUpOncx1krVXmOg1g= +github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.9 h1:Ai9eyJYdMkF8BU3sUVhyU6kie922glMNddNKfUQkf24= +github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.9/go.mod h1:cA6OCt8K1z4ljh2fP1Cs4pWD6z91eqICBHX3wR10gRs= +github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.9 h1:xieSSYRgj1t6Nb1bCuBk7c3zKeWAMVDDH4dH3C2YmXQ= +github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.9/go.mod h1:Su9HBAPf65TPBWBRnMm6awh1Il6kBTAO1NS0Ik9sap4= +github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.9 h1:KGC7nV8AfhG1Tn79DiXPV5kFRcnsgWFf3MgrbZp6fGk= +github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.9/go.mod h1:QJZ82NlQuURsQSZET6Q1+I6DoV3mYmfZj9onL57kYSo= +github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.9 h1:gFBQCHTn2AWBd/52khOG9haQayRIidSB/Rwe4SjuifE= +github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.9/go.mod h1:s+X5H5pETn5sQPsF8IrMn644+IigC1fw2yh2s0cf83U= +github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.9 h1:2qfeuogm15ZJAq9xzgAhEFRF4Py8HoVGeXmNX0LUBgw= +github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.9/go.mod h1:K3Fpn9YUxmoZz/lMED2hh7vPtuRnPtCY8ug6/p5VFVI= +github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.9 h1:C1JO4wTlmQvfGAAPJcV3dVLPxPPDH6emQN8hDdtLQW8= +github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.9/go.mod h1:gNVXH6m4CpqVqn5roNoVHBiRhh48/iSg/BUhDKRqBaI= +github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.9 h1:nJed4WjOemfFDEunf+yZU9AJ4gLYW8InPOFIy1dFiUo= +github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.9/go.mod h1:u52/H5dsTA7bNmp4X1CdQnnMVmSKim0YAT6tuHLwARM= +github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.9 h1:B1irkGEAbDR5G/ravEWTbuzqsHpWYNwcAKFR3Ox1E/Y= +github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.9/go.mod h1:h7YtlrO8KWgxUb6huvSGkzfIQ7bccrJm8rg6rX4tjY0= +github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.9 h1:fHEzi9QPmDT5n2DvNdC6qymf/ent5pYPuMC7v2kYWGk= +github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.9/go.mod h1:ZpC411WtHITXC+T/XJCLLviCCiMctN3L/n3+e/gg+xc= +github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.9 h1:nj/ko5JMVZBOLH/hx4TeLHXf1SqNV2IWGthB+AojdKA= +github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.9/go.mod h1:CfziCW45jOIDlEvf2lCakmxAnH+ECivzQJFcIKBpz/o= +github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.9 h1:oXgwKpbWc8GWMiCq+ycTK1JgBS3uAJ5FM8bShiNNNmc= +github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.9/go.mod h1:O6Aw22f7GaCeChDZ3VmhFiD6RCGo2grZsmJikg9qMiA= github.com/InjectiveLabs/go-bip39 v1.1.0 h1:pb7szpEmFhxsHYPg+1roFACJRpC3hHE5/SZjInZ4uyE= github.com/InjectiveLabs/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/InjectiveLabs/go-ethereum v1.16.3-inj.2 h1:20SwI6J3SU2Y2NRq6kUVdBZbWuJU/hAd2+eDje50z2A= github.com/InjectiveLabs/go-ethereum v1.16.3-inj.2/go.mod h1:Lrsc6bt9Gm9RyvhfFK53vboCia8kpF9nv+2Ukntnl+8= +github.com/InjectiveLabs/gogoproto v1.7.2-inj.2 h1:m79pFc+EheCbZms2N0WdG0aYJjQNvEtq5uM6dNhyFSk= +github.com/InjectiveLabs/gogoproto v1.7.2-inj.2/go.mod h1:8S7w53P1Y1cHwND64o0BnArT6RmdgIvsBuco6uTllsk= github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj h1:FrfheY6aFibpFK+BRM7lcKfvZY129jeqykj17T6YGuk= github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj/go.mod h1:qPRUSSE9RTnZYHsfLmXWn7GKy+VYmSAm52Ey6Gz4JSM= -github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.3 h1:cgsP+ZYcyNX8EkQicK38acv4B+XtzX+x2EkdkX+Gges= -github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.3/go.mod h1:bB1YsA/hKL/RmgUIyFEviQo+ydpBo2q7HQmBu5C9bXA= -github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.3 h1:VCzrjp0aljrGWG4nrXSOmzRf4ESjaNyUOJ04RF9o85w= -github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.3/go.mod h1:eyFRTlvKleMvsByuRDyxBDs/CFtYA9/T1aOAZvDVsj4= -github.com/InjectiveLabs/metrics v0.0.10 h1:BoOwXnCtRRIPmq06jcI20pXZYE758eusaCI5jDOoN4U= -github.com/InjectiveLabs/metrics v0.0.10/go.mod h1:eYu++0DVUjk/jjV9WgvCo8gQU+16Yoyhp1iu+ghKNME= +github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.4 h1:icQacndGsF7spfJZog2REpeuyLi1lqjR4s4t5+Kxizw= +github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.4/go.mod h1:9yJ97Kw1qVOlg/pL21erfBlz6AxXmaXKP2d89mL9mpg= +github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.4 h1:dD8rgHheFaJ6UhycH0ow14X5A5hJ046IcfuNSnxNQ1Y= +github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.4/go.mod h1:mJcKKRy2/b8n6bikQDeaqrx1A6Wmm3GzpbrcUEUPcqU= +github.com/InjectiveLabs/metrics/v2 v2.0.0-beta.8 h1:zvIV7ifNcH2Dvl0RrXd2qYRkaDSc+iP0hqaAhfS85MY= +github.com/InjectiveLabs/metrics/v2 v2.0.0-beta.8/go.mod h1:fdW28eWh1Ace92UW2TzINdJVaVP7whCmHKkGQZHsxGI= github.com/InjectiveLabs/suplog v1.3.3 h1:ARIR3lWD9BxcrmqTwgcGBt8t7e10gwOqllUAXa/MfxI= github.com/InjectiveLabs/suplog v1.3.3/go.mod h1:+I9WRgUhzmo1V/n7IkW24kFBFB9ZTPAiXXXCogWxmTM= -github.com/InjectiveLabs/wasmd v0.53.3-inj.2 h1:A4SRWe0YgGuPMLqDV7yG+eQxTHMWkmwgcYhlmV2zt5I= -github.com/InjectiveLabs/wasmd v0.53.3-inj.2/go.mod h1:co7fr/CXrN/ZAOTpTVWSXlvlr4Az3SAg27os4TfiT/M= +github.com/InjectiveLabs/wasmd v0.53.3-inj.3 h1:lMhBgZdPoR86wTF/uiIs6M6xGzRZ2J3MN1ZGrqojmfg= +github.com/InjectiveLabs/wasmd v0.53.3-inj.3/go.mod h1:c2kGlfsFstKHD6AwI9B+2K0pmOYnERz322G0vmHjalk= github.com/InjectiveLabs/websocket v1.8.13 h1:GTVddOKEzC4EfXplkCN1a6ms4l/81pYP8tocqmddvR4= github.com/InjectiveLabs/websocket v1.8.13/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg= -github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alexcesaro/statsd v2.0.0+incompatible h1:HG17k1Qk8V1F4UOoq6tx+IUoAbOcI5PHzzEUGeDD72w= -github.com/alexcesaro/statsd v2.0.0+incompatible/go.mod h1:vNepIbQAiyLe1j480173M6NYYaAsGwEcvuDTU3OCUGY= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= +github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/aws/aws-sdk-go v1.25.16/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.327 h1:ZS8oO4+7MOBLhkdwIhgtVeDzCeWOlTfKJS7EgggbIEY= github.com/aws/aws-sdk-go v1.44.327/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= @@ -140,6 +1324,8 @@ github.com/bitly/go-simplejson v0.5.1 h1:xgwPbetQScXt1gh9BmoJ6j9JMr3TElvuIyjR8pg github.com/bitly/go-simplejson v0.5.1/go.mod h1:YOPVLzCfwK14b4Sff3oP1AmGhI9T9Vsg84etUnlyp+Q= github.com/bits-and-blooms/bitset v1.22.0 h1:Tquv9S8+SGaS3EhyA+up3FXzmkhxPGjQQCkcs2uw7w4= github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A= @@ -176,9 +1362,14 @@ github.com/bugsnag/panicwrap v1.3.4 h1:A6sXFtDGsgU/4BLf5JT0o5uYg3EeKgGx3Sfs+/uk3 github.com/bugsnag/panicwrap v1.3.4/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= 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/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +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/cp v1.1.1 h1:nCb6ZLdB7NRaqsm91JtQTAme2SKJzXVsdPIPkyJr1MU= github.com/cespare/cp v1.1.1/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= @@ -196,14 +1387,23 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 h1:boJj011Hh+874zpIySeApCX4GeOjPl9qhRF3QuIZq+Q= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +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/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= @@ -235,9 +1435,6 @@ 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.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= -github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= github.com/cosmos/iavl v1.2.6 h1:Hs3LndJbkIB+rEvToKJFXZvKo6Vy0Ex1SJ54hhtioIs= github.com/cosmos/iavl v1.2.6/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= @@ -277,30 +1474,43 @@ github.com/dgraph-io/badger/v4 v4.6.0 h1:acOwfOOZ4p1dPRnYzvkVm7rUk2Y21TgPVepCy5d github.com/dgraph-io/badger/v4 v4.6.0/go.mod h1:KSJ5VTuZNC3Sd+YhvVjk2nYua9UZnnTr/SkXvdtiPgI= github.com/dgraph-io/ristretto/v2 v2.1.0 h1:59LjpOJLNDULHh8MC4UaegN52lC4JnO2dITsie/Pa8I= github.com/dgraph-io/ristretto/v2 v2.1.0/go.mod h1:uejeqfYXpUomfse0+lO+13ATz4TypQYLJZzBSAemuB4= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= -github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z1I= -github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A= github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= +github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= +github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= +github.com/envoyproxy/go-control-plane v0.12.0/go.mod h1:ZBTaoJ23lqITozF0M6G4/IragXCQKCnYbmlmtHvwRG0= github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +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/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87KZaeN4x9zpL9Qt8fQC7d+vs= +github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/ethereum/c-kzg-4844/v2 v2.1.0 h1:gQropX9YFBhl3g4HYhwE70zq3IHFRgbbNPw0Shwzf5w= @@ -314,6 +1524,8 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/ferranbt/fastssz v0.1.4 h1:OCDB+dYDEQDvAgtAGnTSidK1Pe2tW3nFV40XyMkTeDY= github.com/ferranbt/fastssz v0.1.4/go.mod h1:Ea3+oeoRGGLGm5shYAeDgu6PGUlcvQhE2fILyD9+tGg= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -329,25 +1541,43 @@ github.com/getsentry/sentry-go v0.31.1/go.mod h1:CYNcMMz73YigoHljQRG+qPF+eMq8gG7 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= +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= +github.com/go-jose/go-jose/v4 v4.1.1 h1:JYhSgy4mXXzAdF3nUx3ygx347LRXJRrpgyU3adRmkAI= +github.com/go-jose/go-jose/v4 v4.1.1/go.mod h1:BdsZGqgdO3b6tTc6LSE56wcDbMMLuPsw5d4ZD5f94kA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= 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-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= 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/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -364,10 +1594,26 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +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= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -375,6 +1621,8 @@ github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -384,43 +1632,111 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 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/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/go-pkcs11 v0.2.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= +github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= -github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo= -github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +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/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= +github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -434,11 +1750,13 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDa github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +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/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -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-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= @@ -453,8 +1771,6 @@ github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJ github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-metrics v0.5.3 h1:M5uADWMOGCTUNU1YuC4hfknOeHNaX54LDm4oYSucoNE= github.com/hashicorp/go-metrics v0.5.3/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= -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-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= @@ -466,6 +1782,7 @@ github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -489,8 +1806,11 @@ github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= 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/influxdb-client-go/v2 v2.4.0 h1:HGBfZYStlx3Kqvsv1h2pJixbCl/jhnFtxpKFAv9Tu5k= @@ -512,24 +1832,38 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -544,6 +1878,10 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/linxGnu/grocksdb v1.9.8 h1:vOIKv9/+HKiqJAElJIEYv3ZLcihRxyP7Suu/Mu8Dxjs= github.com/linxGnu/grocksdb v1.9.8/go.mod h1:C3CNe9UYc9hlEM2pC82AqiGS3LRW537u9LFV4wIZuHk= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= +github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= @@ -556,15 +1894,20 @@ github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stg github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 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-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxim-inj/grpc-web v0.15.0-inj h1:w0If63zpm1S0Hg9TYKr3F4+iI3U3MU8HTV+MnoJhZRo= github.com/maxim-inj/grpc-web v0.15.0-inj/go.mod h1:BUaSe/3/CKdNEUFmKaKd1KahHRpDZJXNZfkrvU/TdTQ= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= @@ -581,6 +1924,7 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= 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/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= @@ -616,10 +1960,7 @@ github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdM github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= -github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= @@ -628,8 +1969,10 @@ github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQm github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw= github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= -github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= -github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= @@ -647,6 +1990,8 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -661,6 +2006,9 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1: github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -676,12 +2024,14 @@ github.com/prysmaticlabs/gohashtree v0.0.4-beta h1:H/EbCuXPeTV3lpKeXGPpEV9gsUpkq github.com/prysmaticlabs/gohashtree v0.0.4-beta/go.mod h1:BFdtALS+Ffhg3lGQIHv9HDWuHS8cTvHZzrHWxwOtGOs= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 h1:Qp27Idfgi6ACvFQat5+VJvlYToylpM/hcyLBI3WaKPA= -github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052/go.mod h1:uvX/8buq8uVeiZiFht+0lqSLBHF+uGV8BrTv8W/SIwk= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= 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= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= @@ -692,14 +2042,14 @@ github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= -github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg= -github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI= github.com/shamaton/msgpack/v2 v2.2.0 h1:IP1m01pHwCrMa6ZccP9B3bqxEMKMSmMVAVKk54g3L/Y= github.com/shamaton/msgpack/v2 v2.2.0/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= @@ -708,14 +2058,16 @@ github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXY github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= -github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +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/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= @@ -726,6 +2078,8 @@ github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= +github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -742,9 +2096,11 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= @@ -755,8 +2111,6 @@ github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2l github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= -github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4= github.com/tklauser/go-sysconf v0.3.15/go.mod h1:Dmjwr6tYFIseJw7a3dRLJfsHAMXZ3nEnL/aZY+0IuI4= github.com/tklauser/numcpus v0.10.0 h1:18njr6LDBk1zuna922MgdjQuJFjrdppsZG60sHGfjso= @@ -768,43 +2122,77 @@ github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= +github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.4.0 h1:TU77id3TnN/zKr7CO/uk+fBCwF2jGcMuw2B/FMAzYIk= go.etcd.io/bbolt v1.4.0/go.mod h1:AsD+OCi/qPN1giOX1aiLAha3o1U8rAz65bvN4j0sRuk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0 h1:JRxssobiPg23otYU5SbWtQC//snGVIM3Tx6QRzlQBao= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= +go.opentelemetry.io/contrib/detectors/gcp v1.36.0 h1:F7q2tNlCaHY9nMKHR6XH9/qkp8FktLnIcy6jJNyOCQw= +go.opentelemetry.io/contrib/detectors/gcp v1.36.0/go.mod h1:IbBN8uAIIx734PTonTPxAxnjc2pQTxWNkwfstZ+6H2k= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= -go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= -go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= +go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= +go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 h1:vl9obrcoWVKp/lwl8tRE33853I8Xru9HFbw/skNeLs8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0/go.mod h1:GAXRxmLJcVM3u22IjTg74zWBrRCKq8BnOqUVLodpcpw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= +go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= +go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= +go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= +go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= +go.opentelemetry.io/otel/trace v1.6.3/go.mod h1:GNJQusJlUgZl9/TQBPKU/Y/ty+0iVB5fjhKeJGZPGFs= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= +go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= +go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= @@ -815,24 +2203,102 @@ go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 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= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= +golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= +golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= +golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= +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-20190121172915-509febef88a4/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-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +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-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +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/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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.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.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= 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= @@ -842,151 +2308,755 @@ golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +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= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/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-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220517181318-183a9ca12b87/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/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.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +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/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= +golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= +golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= 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= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= -golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= +golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +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-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= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +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-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/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-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/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-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/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-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-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +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-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= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/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/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= +golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= +golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= 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.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= +golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= +golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= +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= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +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/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= +golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= +golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= +golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +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= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/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-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/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-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +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-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +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.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= -golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= +golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= +golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +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/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +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= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= +google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +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/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= +google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= +google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= +google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +google.golang.org/api v0.139.0/go.mod h1:CVagp6Eekz9CjGZ718Z+sloknzkDJE7Vc1Ckj9+viBk= +google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.150.0/go.mod h1:ccy+MJ6nrYFgE3WgRx/AMXOxOmU8Q4hSa+jjibzhxcg= +google.golang.org/api v0.155.0/go.mod h1:GI5qK5f40kCpHfPn6+YzGAByIKWv8ujFnmoWm7Igduk= google.golang.org/api v0.215.0 h1:jdYF4qnyczlEz2ReWIsosNLDuzXyvFHJtI5gcr0J7t0= google.golang.org/api v0.215.0/go.mod h1:fta3CVtuJYOEdugLNWm6WodzOS8KdFckABwN4I40hzY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= +google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= +google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +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-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/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-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= +google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230629202037-9506855d4529/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= +google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:0ggbjUrZYpy1q+ANUS30SEoGZ53cdfwtbuG7Ptgy108= +google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8= +google.golang.org/genproto v0.0.0-20230821184602-ccc8af3d0e93/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= +google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4= +google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= +google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f/go.mod h1:nWSwAFPb+qfNJXsoeO3Io7zf4tMSfN8EA8RlDA04GhY= +google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3/go.mod h1:5RBcpGRxr25RbDzY5w+dmaqpSEvl8Gwl1x2CICf60ic= +google.golang.org/genproto v0.0.0-20231212172506-995d672761c0/go.mod h1:l/k7rMz0vFTBPy+tFSGvXEd3z+BcoG1k7EHbqm+YBsY= +google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917/go.mod h1:pZqR+glSb11aJ+JQcczCvgf47+duRuzNSKqE8YAQnV0= +google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI+aLzyDQhpHMFMMltsD6m7nqpuWDd2CwJw3k= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= -google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24= -google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287 h1:J1H9f+LEdWAfHcez/4cvaVBox7cOYT+IU6rgqj5x++8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287/go.mod h1:8BS3B93F/U1juMFq9+EDk+qOT5CO1R9IzXxG3PTqiRk= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= +google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= +google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= +google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI= +google.golang.org/genproto/googleapis/api v0.0.0-20231211222908-989df2bf70f3/go.mod h1:k2dtGpRrbsSyKcNPKKI5sstZkrNCZwpU/ns96JoHbGg= +google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0/go.mod h1:CAny0tYF+0/9rmDB9fahA9YLzX3+AEVl1qXbv5hhj6c= +google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go.mod h1:CmlNWB9lSezaYELKS5Ym1r44VrrbPUa7JTvw+6MbpJ0= +google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY= +google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20231212172506-995d672761c0/go.mod h1:guYXGPwC6jwxgWKW5Y405fKWOFNwlvUlUnzyp9i0uqo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920183334-c177e329c48b/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3/go.mod h1:eJVxU6o+4G1PSczBr85xmyvSNYAKvAYgkub40YGomFM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0/go.mod h1:FUoWkonphQm3RhTS+kOEhF8h0iDpm4tdXolVCeZ9KKA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1:eaY8u2EuxbRv7c3NiGK0/NedzVsCcV6hDuU5qPX5EGE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= -google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= +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.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 v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= +google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +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= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -995,25 +3065,29 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 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.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= -gopkg.in/DataDog/dd-trace-go.v1 v1.62.0 h1:jeZxE4ZlfAc+R0zO5TEmJBwOLet3NThsOfYJeSQg1x0= -gopkg.in/DataDog/dd-trace-go.v1 v1.62.0/go.mod h1:YTvYkk3PTsfw0OWrRFxV/IQ5Gy4nZ5TRvxTAP3JcIzs= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/alexcesaro/statsd.v2 v2.0.0 h1:FXkZSCZIH17vLCO5sO2UucTHsH9pc+17F6pl3JVCwMc= -gopkg.in/alexcesaro/statsd.v2 v2.0.0/go.mod h1:i0ubccKGzBVNBpdGV5MocxyA/XlLUJzA7SLonnE4drU= 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= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -1036,11 +3110,70 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -honnef.co/go/gotraceui v0.2.0 h1:dmNsfQ9Vl3GwbiVD7Z8d/osC6WtGGrasyrC2suc4ZIQ= -honnef.co/go/gotraceui v0.2.0/go.mod h1:qHo4/W75cA3bX0QQoSvDjbJa4R8mAyyFjbWAj63XElc= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20= +modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= +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.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g= +modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +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.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA= +modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0= +modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= +modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= +modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/injective_data/chain_messages_list.json b/injective_data/chain_messages_list.json index cadea152..76a0091d 100644 --- a/injective_data/chain_messages_list.json +++ b/injective_data/chain_messages_list.json @@ -1,5 +1,6 @@ [ "injective.auction.v1beta1.MsgBid", + "injective.auction.v1beta1.MsgClaimVoucher", "injective.auction.v1beta1.MsgUpdateParams", "injective.erc20.v1beta1.MsgCreateTokenPair", "injective.erc20.v1beta1.MsgDeleteTokenPair", @@ -112,6 +113,7 @@ "injective.exchange.v2.MsgWithdraw", "injective.exchange.v2.OrderData", "injective.exchange.v2.SpotMarketOrderResults", + "injective.insurance.v1beta1.MsgClaimVoucher", "injective.insurance.v1beta1.MsgCreateInsuranceFund", "injective.insurance.v1beta1.MsgRequestRedemption", "injective.insurance.v1beta1.MsgUnderwrite", diff --git a/injective_data/ofac.json b/injective_data/ofac.json index cc19ac90..17a09d3f 100644 --- a/injective_data/ofac.json +++ b/injective_data/ofac.json @@ -1,4 +1,5 @@ [ + "0x0330070fd38ec3bb94f58fa55d40368271e9e54a", "0x04dba1194ee10112fe6c3207c0687def0e78bacf", "0x08723392ed15743cc38513c4925f5e6be5c17243", "0x08b2efdcdb8822efe5ad0eae55517cf5dc544251", @@ -39,6 +40,8 @@ "0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e", "0x6f1ca141a28907f78ebaa64fb83a9088b02a8352", "0x72a5843cc08275c8171e582972aa4fda8c397b2a", + "0x747afb5c7a7fc34b547cd0fdebf9b91759c5a52b", + "0x76ea76ca4eb727f18956ab93445a94c5280412b9", "0x797d7ae72ebddcdea2a346c1834e04d1f8df102b", "0x7ced75026204ac29c34bea98905d4c949f27361e", "0x7db418b5d567a4e0e8c59ad71be1fce48f3e6107", @@ -50,18 +53,23 @@ "0x8dce2aac0de82bdcaf6b4373b79f94331b8e4995", "0x901bb9583b24d97e995513c6778dc6888ab6870e", "0x931546d9e66836abf687d2bc64b30407bac8c568", + "0x95584c303fcd48af5c6b9873015f2ad0ca84eae3", "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1", "0x97b1043abd9e6fc31681635166d430a458d14f9c", "0x983a81ca6fb1e441266d2fbcb7d8e530ac2e05a2", + "0x9be599d7867f5e1a2d7ec6db9710df2b98a15573", "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa", "0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9", "0xa0e1c89ef1a489c9c7de96311ed5ce5d32c20e4b", "0xa7e5d5a720f06526557c513402f2e6b5fa20b008", "0xb338962b92cd818d6aef0a32a9ecd01212a71f33", + "0xb637f84b66876ebf609c2a4208905f9ddac9d075", "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40", "0xc103b7dc095c904b92081eef0c1640081ec01c10", "0xc2a3829f459b3edd87791c74cd45402ba0a20be3", "0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a", + "0xcb74874f1e06fcf80a306e06e5379a44b488ba2d", + "0xd04e33461fea8302c5e1e13895b60cee8aefda7f", "0xd0975b32cea532eadddfc9c60481976e39db3472", "0xd5ed34b52ac4ab84d8fa8a231a3218bbf01ed510", "0xd8500c631dc32fa18645b7436344a99e4825e10e", @@ -79,6 +87,8 @@ "0xf4377eda661e04b6dda78969796ed31658d602d4", "0xf7b31119c2682c88d88d455dbb9d5932c65cf1be", "0xfac583c0cf07ea434052c49115a4682172ab6b4f", + "0xfb3eff152ea55d1bfa04dbdd509a80fd7b72cdeb", + "0xfda1ec4a6178d4916b001a065422d31ebe5f62ff", "0xfec8a60023265364d066a1212fde3930f6ae8da7", "0xc5801cd781d168e2d3899ad9c39d8a2541871298", "0x0992E2D17e0082Df8a31Bf36Bd8Cc662551de68B", diff --git a/proto/injective/auction/v1beta1/auction.proto b/proto/injective/auction/v1beta1/auction.proto index 461527c9..a7329469 100644 --- a/proto/injective/auction/v1beta1/auction.proto +++ b/proto/injective/auction/v1beta1/auction.proto @@ -4,9 +4,20 @@ package injective.auction.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; import "amino/amino.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types"; +message EventSetVoucher { + // The bech32 address of the voucher holder. + string addr = 1; + // The new voucher amount. A zero coin signals voucher deletion. + cosmos.base.v1beta1.Coin voucher = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.nullable) = false + ]; +} + message Params { option (gogoproto.equal) = true; option (amino.name) = "auction/Params"; diff --git a/proto/injective/auction/v1beta1/genesis.proto b/proto/injective/auction/v1beta1/genesis.proto index 08b5b9f2..61b06f52 100644 --- a/proto/injective/auction/v1beta1/genesis.proto +++ b/proto/injective/auction/v1beta1/genesis.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package injective.auction.v1beta1; import "injective/auction/v1beta1/auction.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types"; @@ -22,4 +23,8 @@ message GenesisState { // last auction result LastAuctionResult last_auction_result = 5; + + // outstanding vouchers (failed basket deliveries) + repeated injective.common.vouchers.v1.AddressVoucher vouchers = 6 + [ (gogoproto.nullable) = false ]; } diff --git a/proto/injective/auction/v1beta1/query.proto b/proto/injective/auction/v1beta1/query.proto index 65439847..2f983a5c 100644 --- a/proto/injective/auction/v1beta1/query.proto +++ b/proto/injective/auction/v1beta1/query.proto @@ -4,6 +4,7 @@ package injective.auction.v1beta1; import "google/api/annotations.proto"; import "injective/auction/v1beta1/auction.proto"; import "injective/auction/v1beta1/genesis.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types"; @@ -34,6 +35,16 @@ service Query { option (google.api.http).get = "/injective/auction/v1beta1/last_auction_result"; } + + // Vouchers retrieves all outstanding vouchers; pass an empty denom to get all + rpc Vouchers(QueryVouchersRequest) returns (QueryVouchersResponse) { + option (google.api.http).get = "/injective/auction/v1beta1/vouchers"; + } + + // Voucher retrieves a single voucher for a given denom and address + rpc Voucher(QueryVoucherRequest) returns (QueryVoucherResponse) { + option (google.api.http).get = "/injective/auction/v1beta1/voucher"; + } } // QueryAuctionParamsRequest is the request type for the Query/AuctionParams RPC @@ -84,3 +95,29 @@ message QueryLastAuctionResultRequest {} message QueryLastAuctionResultResponse { LastAuctionResult last_auction_result = 1; } + +message QueryVouchersRequest { + // denom filter; empty string returns all vouchers + string denom = 1; +} + +message QueryVouchersResponse { + // List of outstanding vouchers matching the request filter. + repeated injective.common.vouchers.v1.AddressVoucher vouchers = 1 + [ (gogoproto.nullable) = false ]; +} + +message QueryVoucherRequest { + // Required. The token denom to look up. + string denom = 1; + // Required. The bech32 address of the voucher holder. + string address = 2; +} + +message QueryVoucherResponse { + // The outstanding voucher coin for the requested denom and address. + cosmos.base.v1beta1.Coin voucher = 1 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/injective/auction/v1beta1/tx.proto b/proto/injective/auction/v1beta1/tx.proto index 96f994d4..7a3a3549 100644 --- a/proto/injective/auction/v1beta1/tx.proto +++ b/proto/injective/auction/v1beta1/tx.proto @@ -18,6 +18,9 @@ service Msg { rpc Bid(MsgBid) returns (MsgBidResponse); rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // ClaimVoucher defines a method for claiming an outstanding voucher + rpc ClaimVoucher(MsgClaimVoucher) returns (MsgClaimVoucherResponse); } // Bid defines a SDK message for placing a bid for an auction @@ -50,4 +53,20 @@ message MsgUpdateParams { Params params = 2 [ (gogoproto.nullable) = false ]; } -message MsgUpdateParamsResponse {} \ No newline at end of file +message MsgUpdateParamsResponse {} + +// MsgClaimVoucher defines a message for claiming an outstanding voucher +message MsgClaimVoucher { + option (amino.name) = "auction/MsgClaimVoucher"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos.msg.v1.signer) = "sender"; + + // The sender's Injective address. + string sender = 1; + // The token denom of the voucher to claim. + string denom = 2; +} + +message MsgClaimVoucherResponse {} \ No newline at end of file diff --git a/proto/injective/common/vouchers/v1/vouchers.proto b/proto/injective/common/vouchers/v1/vouchers.proto new file mode 100644 index 00000000..aa19888d --- /dev/null +++ b/proto/injective/common/vouchers/v1/vouchers.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +package injective.common.vouchers.v1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/common/vouchers/types"; + +// AddressVoucher pairs a bech32 address with its outstanding voucher coin. +message AddressVoucher { + // The bech32 address of the voucher holder. + string address = 1; + // The outstanding voucher coin. + cosmos.base.v1beta1.Coin voucher = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/injective/exchange/v1beta1/exchange.proto b/proto/injective/exchange/v1beta1/exchange.proto index f50ec015..1fc22cbc 100644 --- a/proto/injective/exchange/v1beta1/exchange.proto +++ b/proto/injective/exchange/v1beta1/exchange.proto @@ -194,10 +194,13 @@ message Params { // List of addresses that are allowed to perform exchange admin operations repeated string exchange_admins = 27; - // inj_auction_max_cap defines the maximum cap for INJ sent to auction + // inj_auction_max_cap defines the maximum cap for INJ sent to auction. + // Deprecated: the cap is now driven by the auction module's InjBasketMaxCap; + // this field is ignored. string inj_auction_max_cap = 28 [ (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + deprecated = true ]; // fixed_gas_enabled indicates if msg server will consume fixed gas amount for diff --git a/proto/injective/exchange/v2/exchange.proto b/proto/injective/exchange/v2/exchange.proto index 39d507aa..18b1713c 100644 --- a/proto/injective/exchange/v2/exchange.proto +++ b/proto/injective/exchange/v2/exchange.proto @@ -12,18 +12,6 @@ import "injective/exchange/v2/order.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2"; -// EnforcedRestrictionsContract defines a contract with its pause event -// signature -message EnforcedRestrictionsContract { - option (gogoproto.equal) = true; - // EVM address of the contract - string contract_address = 1 - [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; - // Pause event signature for the contract (e.g. "Pause()", or - // "Pause(address)"). If left empty, it will default to "Pause()". - string pause_event_signature = 2; -} - enum ExecutionType { UnspecifiedExecutionType = 0; Market = 1; @@ -36,6 +24,18 @@ enum ExecutionType { Synthetic = 8; } +// EnforcedRestrictionsContract defines a contract with its pause event +// signature +message EnforcedRestrictionsContract { + option (gogoproto.equal) = true; + // EVM address of the contract + string contract_address = 1 + [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + // Pause event signature for the contract (e.g. "Pause()", or + // "Pause(address)"). If left empty, it will default to "Pause()". + string pause_event_signature = 2; +} + message Params { option (gogoproto.equal) = true; option (amino.name) = "exchange/Params"; @@ -189,10 +189,13 @@ message Params { // List of addresses that are allowed to perform exchange admin operations repeated string exchange_admins = 27; - // inj_auction_max_cap defines the maximum cap for INJ sent to auction + // inj_auction_max_cap defines the maximum cap for INJ sent to auction. + // Deprecated: the cap is now driven by the auction module's InjBasketMaxCap; + // this field is ignored. string inj_auction_max_cap = 28 [ (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + deprecated = true ]; // fixed_gas_enabled indicates if msg server will consume fixed gas amount for @@ -223,10 +226,23 @@ message Params { // downtime uint64 post_only_mode_blocks_amount_after_downtime = 35; + // DEPRECATED, left for upgrade purposes // Contracts that exchange will be listening to pause markets denominated in // respective erc20: denoms, with their pause event signatures - repeated EnforcedRestrictionsContract enforced_restrictions_contracts = 36 + repeated EnforcedRestrictionsContract + deprecated_enforced_restrictions_contracts = 36 [ (gogoproto.nullable) = false ]; + + // white_knight_liquidators defines addresses that can liquidate positions + // with a dedicated white-knight reward share in positive payout liquidations + repeated string white_knight_liquidators = 37; + + // white_knight_liquidator_reward_share_rate defines the ratio of the split of + // the surplus collateral that goes to a white knight liquidator + string white_knight_liquidator_reward_share_rate = 38 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; } message NextFundingTimestamp { int64 next_timestamp = 1; } diff --git a/proto/injective/insurance/v1beta1/events.proto b/proto/injective/insurance/v1beta1/events.proto index e4b2d48e..0abe59a2 100644 --- a/proto/injective/insurance/v1beta1/events.proto +++ b/proto/injective/insurance/v1beta1/events.proto @@ -18,6 +18,13 @@ message EventWithdrawRedemption { cosmos.base.v1beta1.Coin redeem_coin = 2 [ (gogoproto.nullable) = false ]; } +message EventWithdrawRedemptionFailed { + // redemption schedule that failed to withdraw + RedemptionSchedule schedule = 1; + // error produced while processing the redemption withdrawal + string withdraw_err = 2; +} + message EventUnderwrite { // address of the underwriter string underwriter = 1; @@ -33,4 +40,14 @@ message EventInsuranceWithdraw { string market_id = 1; string market_ticker = 2; cosmos.base.v1beta1.Coin withdrawal = 3 [ (gogoproto.nullable) = false ]; -} \ No newline at end of file +} + +message EventSetVoucher { + // The bech32 address of the voucher holder. + string addr = 1; + // The new voucher amount. A zero coin signals voucher deletion. + cosmos.base.v1beta1.Coin voucher = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/injective/insurance/v1beta1/genesis.proto b/proto/injective/insurance/v1beta1/genesis.proto index 3b7d3d34..a4063108 100644 --- a/proto/injective/insurance/v1beta1/genesis.proto +++ b/proto/injective/insurance/v1beta1/genesis.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package injective.insurance.v1beta1; import "injective/insurance/v1beta1/insurance.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/insurance/types"; @@ -26,4 +27,17 @@ message GenesisState { // next_redemption_schedule_id describes next redemption schedule id to be // used for next schedule incremented by 1 per redemption request uint64 next_redemption_schedule_id = 5; + + // failed_redemption_schedules describes redemptions that failed during + // settlement and are preserved for manual resolution + repeated FailedRedemptionSchedule failed_redemption_schedules = 6 + [ (gogoproto.nullable) = false ]; + + // next_failed_redemption_schedule_id describes the next id for failed + // redemption schedules, incremented by 1 per failed settlement + uint64 next_failed_redemption_schedule_id = 7; + + // outstanding vouchers (failed redemption deliveries) + repeated injective.common.vouchers.v1.AddressVoucher vouchers = 8 + [ (gogoproto.nullable) = false ]; } diff --git a/proto/injective/insurance/v1beta1/insurance.proto b/proto/injective/insurance/v1beta1/insurance.proto index e4e2ada5..13bbf9da 100644 --- a/proto/injective/insurance/v1beta1/insurance.proto +++ b/proto/injective/insurance/v1beta1/insurance.proto @@ -6,6 +6,7 @@ import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "cosmos/base/v1beta1/coin.proto"; import "injective/oracle/v1beta1/oracle.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/insurance/types"; @@ -81,4 +82,13 @@ message RedemptionSchedule { // the insurance_pool_token amount to redeem cosmos.base.v1beta1.Coin redemption_amount = 5 [ (gogoproto.nullable) = false ]; -} \ No newline at end of file +} + +message FailedRedemptionSchedule { + // id of the failed redemption + uint64 id = 1; + // the original redemption schedule that failed to execute + RedemptionSchedule schedule = 2 [ (gogoproto.nullable) = false ]; + // the error message from the failed withdrawal attempt + string err = 3; +} diff --git a/proto/injective/insurance/v1beta1/query.proto b/proto/injective/insurance/v1beta1/query.proto index ec21948c..c4f9d826 100644 --- a/proto/injective/insurance/v1beta1/query.proto +++ b/proto/injective/insurance/v1beta1/query.proto @@ -3,6 +3,7 @@ package injective.insurance.v1beta1; import "google/api/annotations.proto"; import "injective/insurance/v1beta1/insurance.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; import "injective/insurance/v1beta1/genesis.proto"; @@ -52,6 +53,23 @@ service Query { returns (QueryModuleStateResponse) { option (google.api.http).get = "/injective/insurance/v1beta1/module_state"; } + + // Retrieves all failed redemption schedules + rpc FailedRedemptions(QueryFailedRedemptionsRequest) + returns (QueryFailedRedemptionsResponse) { + option (google.api.http).get = + "/injective/insurance/v1beta1/failed_redemptions"; + } + + // Vouchers retrieves all outstanding vouchers; pass an empty denom to get all + rpc Vouchers(QueryVouchersRequest) returns (QueryVouchersResponse) { + option (google.api.http).get = "/injective/insurance/v1beta1/vouchers"; + } + + // Voucher retrieves a single voucher for a given denom and address + rpc Voucher(QueryVoucherRequest) returns (QueryVoucherResponse) { + option (google.api.http).get = "/injective/insurance/v1beta1/voucher"; + } } // QueryInsuranceParamsRequest is the request type for the Query/InsuranceParams @@ -117,4 +135,41 @@ message QueryModuleStateRequest {} // QueryModuleStateResponse is the response type for the // Query/InsuranceModuleState RPC method. -message QueryModuleStateResponse { GenesisState state = 1; } \ No newline at end of file +message QueryModuleStateResponse { GenesisState state = 1; } + +// QueryFailedRedemptionsRequest is the request type for the +// Query/FailedRedemptions RPC method. +message QueryFailedRedemptionsRequest {} + +// QueryFailedRedemptionsResponse is the response type for the +// Query/FailedRedemptions RPC method. +message QueryFailedRedemptionsResponse { + repeated FailedRedemptionSchedule schedules = 1 + [ (gogoproto.nullable) = false ]; +} + +message QueryVouchersRequest { + // denom filter; empty string returns all vouchers + string denom = 1; +} + +message QueryVouchersResponse { + // List of outstanding vouchers matching the request filter. + repeated injective.common.vouchers.v1.AddressVoucher vouchers = 1 + [ (gogoproto.nullable) = false ]; +} + +message QueryVoucherRequest { + // Required. The token denom to look up. + string denom = 1; + // Required. The bech32 address of the voucher holder. + string address = 2; +} + +message QueryVoucherResponse { + // The outstanding voucher coin for the requested denom and address. + cosmos.base.v1beta1.Coin voucher = 1 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/injective/insurance/v1beta1/tx.proto b/proto/injective/insurance/v1beta1/tx.proto index 88410ff4..53f92229 100644 --- a/proto/injective/insurance/v1beta1/tx.proto +++ b/proto/injective/insurance/v1beta1/tx.proto @@ -29,6 +29,9 @@ service Msg { returns (MsgRequestRedemptionResponse); rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // ClaimVoucher defines a method for claiming an outstanding voucher + rpc ClaimVoucher(MsgClaimVoucher) returns (MsgClaimVoucherResponse); } // MsgCreateInsuranceFund a message to create an insurance fund for a derivative @@ -115,3 +118,19 @@ message MsgUpdateParams { } message MsgUpdateParamsResponse {} + +// MsgClaimVoucher defines a message for claiming an outstanding voucher +message MsgClaimVoucher { + option (amino.name) = "insurance/MsgClaimVoucher"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos.msg.v1.signer) = "sender"; + + // The sender's Injective address. + string sender = 1; + // The token denom of the voucher to claim. + string denom = 2; +} + +message MsgClaimVoucherResponse {} diff --git a/proto/injective/ocr/v1beta1/genesis.proto b/proto/injective/ocr/v1beta1/genesis.proto deleted file mode 100644 index 3783cd9f..00000000 --- a/proto/injective/ocr/v1beta1/genesis.proto +++ /dev/null @@ -1,75 +0,0 @@ -syntax = "proto3"; -package injective.ocr.v1beta1; - -import "injective/ocr/v1beta1/ocr.proto"; -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/ocr/types"; - -// GenesisState defines the OCR module's genesis state. -message GenesisState { - // params defines all the parameters of related to OCR. - Params params = 1 [ (gogoproto.nullable) = false ]; - - // feed_configs stores all of the supported OCR feeds - repeated FeedConfig feed_configs = 2; - - // latest_epoch_and_rounds stores the latest epoch and round for each feedId - repeated FeedEpochAndRound latest_epoch_and_rounds = 3; - - // feed_transmissions stores the last transmission for each feed - repeated FeedTransmission feed_transmissions = 4; - - // latest_aggregator_round_ids stores the latest aggregator round ID for each - // feedId - repeated FeedLatestAggregatorRoundIDs latest_aggregator_round_ids = 5; - - // reward_pools stores the reward pools - repeated RewardPool reward_pools = 6; - - // feed_observation_counts stores the feed observation counts - repeated FeedCounts feed_observation_counts = 7; - - // feed_transmission_counts stores the feed transmission counts - repeated FeedCounts feed_transmission_counts = 8; - - // pending_payeeships stores the pending payeeships - repeated PendingPayeeship pending_payeeships = 9; -} - -message FeedTransmission { - string feed_id = 1; - Transmission transmission = 2; -} - -message FeedEpochAndRound { - string feed_id = 1; - EpochAndRound epoch_and_round = 2; -} - -message FeedLatestAggregatorRoundIDs { - string feed_id = 1; - uint64 aggregator_round_id = 2; -} - -message RewardPool { - string feed_id = 1; - cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.nullable) = false ]; -} - -message FeedCounts { - string feed_id = 1; - repeated Count counts = 2; -} - -message Count { - string address = 1; - uint64 count = 2; -} - -message PendingPayeeship { - string feed_id = 1; - string transmitter = 2; - string proposed_payee = 3; -} diff --git a/proto/injective/ocr/v1beta1/ocr.proto b/proto/injective/ocr/v1beta1/ocr.proto deleted file mode 100644 index 8f7c2a5d..00000000 --- a/proto/injective/ocr/v1beta1/ocr.proto +++ /dev/null @@ -1,334 +0,0 @@ -syntax = "proto3"; -package injective.ocr.v1beta1; - -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; -import "amino/amino.proto"; - -option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/ocr/types"; - -message Params { - option (amino.name) = "ocr/Params"; - option (gogoproto.equal) = true; - - // Native denom for LINK coin in the bank keeper - string link_denom = 1; - // The block number interval at which payouts are made - uint64 payout_block_interval = 2; - // The admin for the OCR module - string module_admin = 3; -} - -message FeedConfig { - // signers ith element is address ith oracle uses to sign a report - repeated string signers = 1; - - // transmitters ith element is address ith oracle uses to transmit a report - // via the transmit method - repeated string transmitters = 2; - - // f maximum number of faulty/dishonest oracles the protocol can tolerate - // while still working correctly - uint32 f = 3; - - // onchain_config serialized data with reporting plugin params on chain. - bytes onchain_config = 4; - - // offchain_config_version version of the serialization format used for - // "offchain_config" parameter - uint64 offchain_config_version = 5; - - // offchain_config serialized data used by oracles to configure their offchain - // operation - bytes offchain_config = 6; - - // feed-specific params for the Cosmos module. - ModuleParams module_params = 7; -} - -message FeedConfigInfo { - bytes latest_config_digest = 1; - uint32 f = 2; - uint32 n = 3; - // config_count ordinal number of this config setting among all config - // settings - uint64 config_count = 4; - int64 latest_config_block_number = 5; -} - -message ModuleParams { - // feed_id is an unique ID for the target of this config - string feed_id = 1; - - // lowest answer the median of a report is allowed to be - string min_answer = 2 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; - - // highest answer the median of a report is allowed to be - string max_answer = 3 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; - - // Fixed LINK reward for each observer - string link_per_observation = 4 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false - ]; - - // Fixed LINK reward for transmitter - string link_per_transmission = 5 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false - ]; - - // Native denom for LINK coin in the bank keeper - string link_denom = 6; - - // Enables unique reports - bool unique_reports = 7; - - // short human-readable description of observable this feed's answers pertain - // to - string description = 8; - - // feed administrator - string feed_admin = 9; - - // feed billing administrator - string billing_admin = 10; -} - -message ContractConfig { - // config_count ordinal number of this config setting among all config - // settings - uint64 config_count = 1; - - // signers ith element is address ith oracle uses to sign a report - repeated string signers = 2; - - // transmitters ith element is address ith oracle uses to transmit a report - // via the transmit method - repeated string transmitters = 3; - - // f maximum number of faulty/dishonest oracles the protocol can tolerate - // while still working correctly - uint32 f = 4; - - // onchain_config serialized data with reporting plugin params on chain. - bytes onchain_config = 5; - - // offchain_config_version version of the serialization format used for - // "offchain_config" parameter - uint64 offchain_config_version = 6; - - // offchain_config serialized data used by oracles to configure their offchain - // operation - bytes offchain_config = 7; -} - -message SetConfigProposal { - option (amino.name) = "ocr/SetConfigProposal"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; - FeedConfig config = 3; -} - -message FeedProperties { - // feed_id is an unique ID for the target of this config - string feed_id = 1; - - // f maximum number of faulty/dishonest oracles the protocol can tolerate - // while still working correctly - uint32 f = 2; - - // onchain_config serialized data with reporting plugin params on chain. - bytes onchain_config = 3; - - // offchain_config_version version of the serialization format used for - // "offchain_config" parameter - uint64 offchain_config_version = 4; - - // offchain_config serialized data used by oracles to configure their offchain - // operation - bytes offchain_config = 5; - - // lowest answer the median of a report is allowed to be - string min_answer = 6 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; - - // highest answer the median of a report is allowed to be - string max_answer = 7 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; - - // Fixed LINK reward for each observer - string link_per_observation = 8 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false - ]; - - // Fixed LINK reward for transmitter - string link_per_transmission = 9 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false - ]; - - // Enables unique reports - bool unique_reports = 10; - - // short human-readable description of observable this feed's answers pertain - // to - string description = 11; -} - -message SetBatchConfigProposal { - option (amino.name) = "ocr/SetBatchConfigProposal"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; - - string title = 1; - string description = 2; - - // signers ith element is address ith oracle uses to sign a report - repeated string signers = 3; - - // transmitters ith element is address ith oracle uses to transmit a report - // via the transmit method - repeated string transmitters = 4; - - // Native denom for LINK coin in the bank keeper - string link_denom = 5; - - // feed properties - repeated FeedProperties feed_properties = 6; -} - -message OracleObservationsCounts { repeated uint32 counts = 1; } - -// LINK-INJ-denominated reimbursements for gas used by transmitters. -message GasReimbursements { - repeated cosmos.base.v1beta1.Coin reimbursements = 1; -} - -message Payee { - string transmitter_addr = 1; - string payment_addr = 2; -} - -// Transmission records the median answer from the transmit transaction at -// time timestamp -message Transmission { - string answer = 1 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; - int64 observations_timestamp = 2; // when were observations made offchain - int64 transmission_timestamp = 3; // when was report received onchain -} - -message EpochAndRound { - uint64 epoch = 1; - uint64 round = 2; -} - -message Report { - int64 observations_timestamp = 1; - bytes observers = 2; // ith element is the index of the ith observer - repeated string observations = 3 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; // ith element is the ith observation -} - -message ReportToSign { - bytes config_digest = 1; - uint64 epoch = 2; - uint64 round = 3; - bytes extra_hash = 4; - - // Opaque report - bytes report = 5; -} - -message EventOraclePaid { - string transmitter_addr = 1; - string payee_addr = 2; - cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false ]; -} - -message EventAnswerUpdated { - string current = 1 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false - ]; - - string round_id = 2 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false - ]; - - google.protobuf.Timestamp updated_at = 3 - [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; -} - -message EventNewRound { - string round_id = 1 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false - ]; - - // address of starter - string started_by = 2; - - google.protobuf.Timestamp started_at = 3 - [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; -} - -message EventTransmitted { - bytes config_digest = 1; - uint64 epoch = 2; -} - -message EventNewTransmission { - string feed_id = 1; - uint32 aggregator_round_id = 2; - string answer = 3 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; - string transmitter = 4; - int64 observations_timestamp = 5; - repeated string observations = 6 [ - (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; - bytes observers = 7; - bytes config_digest = 8; - EpochAndRound epoch_and_round = 9; -} - -message EventConfigSet { - // hash of the config - bytes config_digest = 1; - // previous_config_block_number block in which the previous config was set, to - // simplify historic analysis - int64 previous_config_block_number = 2; - - FeedConfig config = 3; - FeedConfigInfo config_info = 4; -} \ No newline at end of file diff --git a/proto/injective/ocr/v1beta1/query.proto b/proto/injective/ocr/v1beta1/query.proto deleted file mode 100644 index 408c1e26..00000000 --- a/proto/injective/ocr/v1beta1/query.proto +++ /dev/null @@ -1,101 +0,0 @@ -syntax = "proto3"; -package injective.ocr.v1beta1; - -import "google/api/annotations.proto"; -import "injective/ocr/v1beta1/ocr.proto"; -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "injective/ocr/v1beta1/genesis.proto"; - -option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/ocr/types"; - -// Query defines the gRPC querier service for OCR module. -service Query { - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/chainlink/ocr/v1beta1/params"; - } - - // Retrieves the OCR FeedConfig for a given FeedId - rpc FeedConfig(QueryFeedConfigRequest) returns (QueryFeedConfigResponse) { - option (google.api.http).get = - "/chainlink/ocr/v1beta1/feed_config/{feed_id}"; - } - - // Retrieves the OCR FeedConfigInfo for a given FeedId - rpc FeedConfigInfo(QueryFeedConfigInfoRequest) - returns (QueryFeedConfigInfoResponse) { - option (google.api.http).get = - "/chainlink/ocr/v1beta1/feed_config_info/{feed_id}"; - } - - // Retrieves latest round ID and data, including median answer for that round - rpc LatestRound(QueryLatestRoundRequest) returns (QueryLatestRoundResponse) { - option (google.api.http).get = - "/chainlink/ocr/v1beta1/latest_round/{feed_id}"; - } - - // LatestTransmissionDetails returns details about the latest trasmission - // recorded on chain for the given feed ID. - rpc LatestTransmissionDetails(QueryLatestTransmissionDetailsRequest) - returns (QueryLatestTransmissionDetailsResponse) { - option (google.api.http).get = - "/chainlink/ocr/v1beta1/latest_transmission_details/{feed_id}"; - } - - // Retrieves transmitter's owed amount - rpc OwedAmount(QueryOwedAmountRequest) returns (QueryOwedAmountResponse) { - option (google.api.http).get = - "/chainlink/ocr/v1beta1/owed_amount/{transmitter}"; - } - - // Retrieves the entire OCR module's state - rpc OcrModuleState(QueryModuleStateRequest) - returns (QueryModuleStateResponse) { - option (google.api.http).get = "/chainlink/ocr/v1beta1/module_state"; - } -} - -message QueryParamsRequest {} - -message QueryParamsResponse { - Params params = 1 [ (gogoproto.nullable) = false ]; -} - -message QueryFeedConfigRequest { string feed_id = 1; } - -message QueryFeedConfigResponse { - FeedConfigInfo feed_config_info = 1; - FeedConfig feed_config = 2; -} - -message QueryFeedConfigInfoRequest { string feed_id = 1; } - -message QueryFeedConfigInfoResponse { - FeedConfigInfo feed_config_info = 1; - EpochAndRound epoch_and_round = 2; -} - -message QueryLatestRoundRequest { string feed_id = 1; } - -message QueryLatestRoundResponse { - uint64 latest_round_id = 1; - Transmission data = 2; -} - -message QueryLatestTransmissionDetailsRequest { string feed_id = 1; } - -message QueryLatestTransmissionDetailsResponse { - bytes config_digest = 1; - EpochAndRound epoch_and_round = 2; - Transmission data = 3; -} - -message QueryOwedAmountRequest { string transmitter = 1; } - -message QueryOwedAmountResponse { - cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false ]; -} - -message QueryModuleStateRequest {} - -message QueryModuleStateResponse { GenesisState state = 1; } \ No newline at end of file diff --git a/proto/injective/ocr/v1beta1/tx.proto b/proto/injective/ocr/v1beta1/tx.proto deleted file mode 100644 index 1da0a80b..00000000 --- a/proto/injective/ocr/v1beta1/tx.proto +++ /dev/null @@ -1,211 +0,0 @@ -syntax = "proto3"; -package injective.ocr.v1beta1; - -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/msg/v1/msg.proto"; -import "gogoproto/gogo.proto"; -import "injective/ocr/v1beta1/ocr.proto"; -import "cosmos_proto/cosmos.proto"; -import "amino/amino.proto"; - -option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/ocr/types"; - -// Msg defines the OCR Msg service. -service Msg { - option (cosmos.msg.v1.service) = true; - - // CreateFeed defines a method for creating feed by module admin - rpc CreateFeed(MsgCreateFeed) returns (MsgCreateFeedResponse); - // CreateFeed defines a method for creating feed by feed admin or feed billing - // admin - rpc UpdateFeed(MsgUpdateFeed) returns (MsgUpdateFeedResponse); - // Transmit defines a method for transmitting the feed info by transmitter - rpc Transmit(MsgTransmit) returns (MsgTransmitResponse); - // FundFeedRewardPool defines a method to put funds into feed reward pool - rpc FundFeedRewardPool(MsgFundFeedRewardPool) - returns (MsgFundFeedRewardPoolResponse); - // WithdrawFeedRewardPool defines a method to witdhraw feed reward by feed - // admin or billing admin - rpc WithdrawFeedRewardPool(MsgWithdrawFeedRewardPool) - returns (MsgWithdrawFeedRewardPoolResponse); - // SetPayees defines a method to set payees for transmitters (batch action) - rpc SetPayees(MsgSetPayees) returns (MsgSetPayeesResponse); - // TransferPayeeship defines a method for a payee to transfer reward receive - // ownership - rpc TransferPayeeship(MsgTransferPayeeship) - returns (MsgTransferPayeeshipResponse); - // AcceptPayeeship defines a method for a new payee to accept reward receive - // ownership - rpc AcceptPayeeship(MsgAcceptPayeeship) returns (MsgAcceptPayeeshipResponse); - - rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); -} - -message MsgCreateFeed { - option (amino.name) = "ocr/MsgCreateFeed"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "sender"; - - string sender = 1; - FeedConfig config = 2; -} - -message MsgCreateFeedResponse {} - -message MsgUpdateFeed { - option (amino.name) = "ocr/MsgUpdateFeed"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "sender"; - - string sender = 1; - // feed_id is an unique ID for the target of this config - string feed_id = 2; - - // signers ith element is address ith oracle uses to sign a report - repeated string signers = 3; - - // transmitters ith element is address ith oracle uses to transmit a report - // via the transmit method - repeated string transmitters = 4; - - // Fixed LINK reward for each observer - string link_per_observation = 5 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = true - ]; - - // Fixed LINK reward for transmitter - string link_per_transmission = 6 [ - (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = true - ]; - - // Native denom for LINK coin in the bank keeper - string link_denom = 7; - - // feed administrator - string feed_admin = 8; - - // feed billing administrator - string billing_admin = 9; -} - -message MsgUpdateFeedResponse {} - -message MsgTransmit { - option (amino.name) = "ocr/MsgTransmit"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "transmitter"; - - // Address of the transmitter - string transmitter = 1; - bytes config_digest = 2; - string feed_id = 3; - uint64 epoch = 4; - uint64 round = 5; - bytes extra_hash = 6; - Report report = 7; - repeated bytes signatures = 8; -} - -message MsgTransmitResponse {} - -message MsgFundFeedRewardPool { - option (amino.name) = "ocr/MsgFundFeedRewardPool"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "sender"; - - string sender = 1; - string feed_id = 2; - cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false ]; -} - -message MsgFundFeedRewardPoolResponse {} - -message MsgWithdrawFeedRewardPool { - option (amino.name) = "ocr/MsgWithdrawFeedRewardPool"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "sender"; - - string sender = 1; - string feed_id = 2; - cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false ]; -} - -message MsgWithdrawFeedRewardPoolResponse {} - -message MsgSetPayees { - option (amino.name) = "ocr/MsgSetPayees"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "sender"; - - string sender = 1; - string feed_id = 2; - // addresses oracles use to transmit the reports - repeated string transmitters = 3; - - // addresses of payees corresponding to list of transmitters - repeated string payees = 4; -} - -message MsgSetPayeesResponse {} - -message MsgTransferPayeeship { - option (amino.name) = "ocr/MsgTransferPayeeship"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "sender"; - - // transmitter address of oracle whose payee is changing - string sender = 1; - string transmitter = 2; - string feed_id = 3; - // new payee address - string proposed = 4; -} - -message MsgTransferPayeeshipResponse {} - -message MsgAcceptPayeeship { - option (amino.name) = "ocr/MsgAcceptPayeeship"; - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - option (cosmos.msg.v1.signer) = "transmitter"; - - // new payee address - string payee = 1; - // transmitter address of oracle whose payee is changing - string transmitter = 2; - string feed_id = 3; -} - -message MsgAcceptPayeeshipResponse {} - -message MsgUpdateParams { - option (amino.name) = "ocr/MsgUpdateParams"; - option (cosmos.msg.v1.signer) = "authority"; - - // authority is the address of the governance account. - string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; - - // params defines the ocr parameters to update. - // - // NOTE: All parameters must be supplied. - Params params = 2 [ (gogoproto.nullable) = false ]; -} - -message MsgUpdateParamsResponse {} \ No newline at end of file diff --git a/proto/injective/oracle/v1beta1/events.proto b/proto/injective/oracle/v1beta1/events.proto index 027cb6d5..9b12306b 100644 --- a/proto/injective/oracle/v1beta1/events.proto +++ b/proto/injective/oracle/v1beta1/events.proto @@ -7,7 +7,10 @@ import "injective/oracle/v1beta1/oracle.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/oracle/types"; +// Deprecated: Do not use. message SetChainlinkPriceEvent { + option deprecated = true; + string feed_id = 1; string answer = 2 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", @@ -16,8 +19,10 @@ message SetChainlinkPriceEvent { uint64 timestamp = 3; } -// Event type upon set ref +// Deprecated: Do not use. message SetBandPriceEvent { + option deprecated = true; + string relayer = 1; string symbol = 2; string price = 3 [ @@ -28,7 +33,10 @@ message SetBandPriceEvent { uint64 request_id = 5; } +// Deprecated: Do not use. message SetBandIBCPriceEvent { + option deprecated = true; + string relayer = 1; repeated string symbols = 2; repeated string prices = 3 [ @@ -40,17 +48,28 @@ message SetBandIBCPriceEvent { int64 client_id = 6; } +// Deprecated: Do not use. message EventBandIBCAckSuccess { + option deprecated = true; + string ack_result = 1; int64 client_id = 2; } +// Deprecated: Do not use. message EventBandIBCAckError { + option deprecated = true; + string ack_error = 1; int64 client_id = 2; } -message EventBandIBCResponseTimeout { int64 client_id = 1; } +// Deprecated: Do not use. +message EventBandIBCResponseTimeout { + option deprecated = true; + + int64 client_id = 1; +} message SetPriceFeedPriceEvent { string relayer = 1; diff --git a/proto/injective/oracle/v1beta1/genesis.proto b/proto/injective/oracle/v1beta1/genesis.proto index 11deb334..c19eb82d 100644 --- a/proto/injective/oracle/v1beta1/genesis.proto +++ b/proto/injective/oracle/v1beta1/genesis.proto @@ -32,7 +32,8 @@ message GenesisState { uint64 band_ibc_latest_request_id = 11 [ deprecated = true ]; - repeated ChainlinkPriceState chainlink_price_states = 12; + repeated ChainlinkPriceState chainlink_price_states = 12 + [ deprecated = true ]; repeated PriceRecords historical_price_records = 13; diff --git a/proto/injective/oracle/v1beta1/oracle.proto b/proto/injective/oracle/v1beta1/oracle.proto index 2d83e5a9..e4850ef7 100644 --- a/proto/injective/oracle/v1beta1/oracle.proto +++ b/proto/injective/oracle/v1beta1/oracle.proto @@ -14,7 +14,9 @@ message Params { string pyth_contract = 1; string chainlink_verifier_proxy_contract = 2; - bool accept_unverified_chainlink_data_streams_reports = 3; + // Reserved field number 3: previously + // accept_unverified_chainlink_data_streams_reports (bool). Do not reuse. + reserved 3; uint64 chainlink_data_streams_verification_gas_limit = 4; } @@ -23,7 +25,7 @@ enum OracleType { Band = 1 [ deprecated = true ]; PriceFeed = 2; Coinbase = 3; - Chainlink = 4; + Chainlink = 4 [ deprecated = true ]; Razor = 5; Dia = 6; API3 = 7; @@ -41,6 +43,8 @@ message OracleInfo { } message ChainlinkPriceState { + option deprecated = true; + string feed_id = 1; string answer = 2 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", @@ -166,6 +170,7 @@ message ChainlinkDataStreamsPriceState { uint64 valid_from_timestamp = 3; uint64 observations_timestamp = 4; PriceState price_state = 5 [ (gogoproto.nullable) = false ]; + uint64 expires_at = 6; } // DEPRECATED! Oracle price from Band is no longer supported diff --git a/proto/injective/peggy/v1/genesis.proto b/proto/injective/peggy/v1/genesis.proto index 9ade1644..f33c23db 100644 --- a/proto/injective/peggy/v1/genesis.proto +++ b/proto/injective/peggy/v1/genesis.proto @@ -30,4 +30,6 @@ message GenesisState { Valset last_observed_valset = 14 [ (gogoproto.nullable) = false ]; repeated string ethereum_blacklist = 15; repeated RateLimit rate_limits = 16; + repeated RateLimitTransfers rate_limit_transfers = 17; + repeated MintAmount mint_amounts = 18; } diff --git a/proto/injective/peggy/v1/msgs.proto b/proto/injective/peggy/v1/msgs.proto index 89285de3..36fbf0c7 100644 --- a/proto/injective/peggy/v1/msgs.proto +++ b/proto/injective/peggy/v1/msgs.proto @@ -395,7 +395,8 @@ message MsgCreateRateLimit { // the absolute amount of tokens that can be minted on Injective string absolute_mint_limit = 6 [ (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + deprecated = true ]; // length of the sliding window in which inbound (outbound) traffic is diff --git a/proto/injective/peggy/v1/rate_limit.proto b/proto/injective/peggy/v1/rate_limit.proto index 5db665ac..c174cda5 100644 --- a/proto/injective/peggy/v1/rate_limit.proto +++ b/proto/injective/peggy/v1/rate_limit.proto @@ -25,17 +25,20 @@ message RateLimit { (gogoproto.nullable) = false ]; - // the absolute amount of tokens that can be minted on Injective + // [DEPRECATED] the absolute amount of tokens that can be minted on Injective string absolute_mint_limit = 6 [ (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + deprecated = true ]; // transfers that occurred within the sliding window - repeated BridgeTransfer transfers = 7; + repeated BridgeTransfer transfers = 7 [ deprecated = true ]; } message BridgeTransfer { + option deprecated = true; + // quantity that was bridged (chain format) string amount = 1 [ (gogoproto.customtype) = "cosmossdk.io/math.Int", @@ -47,4 +50,37 @@ message BridgeTransfer { // type of transfer (withdrawal/deposit) bool is_deposit = 3; +} + +message RateLimitTransfers { + // contract address of the erc20 on Ethereum + string token = 1; + + // records of deposit transfers across blocks + repeated BlockTransferRecord inflows = 2; + + // records of withdrawal transfers across blocks + repeated BlockTransferRecord outflows = 3; +} + +message BlockTransferRecord { + // block number at which the transfers occurred + uint64 block_number = 1; + + // sum amount of transfers that happened in that block + string amount = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; +} + +message MintAmount { + // address of the erc20 bridged in + string token = 1; + + // amount currently minted on chain + string amount = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; } \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/events.proto b/proto/injective/permissions/v1beta1/events.proto index 7bec7e4d..0e6d9682 100644 --- a/proto/injective/permissions/v1beta1/events.proto +++ b/proto/injective/permissions/v1beta1/events.proto @@ -8,6 +8,8 @@ import "cosmos/bank/v1beta1/bank.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types"; message EventSetVoucher { + // The bech32 address of the voucher holder. string addr = 1; + // The new voucher amount. A zero coin signals voucher deletion. cosmos.base.v1beta1.Coin voucher = 2 [ (gogoproto.nullable) = false ]; } \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/genesis.proto b/proto/injective/permissions/v1beta1/genesis.proto index 43420050..558cf125 100644 --- a/proto/injective/permissions/v1beta1/genesis.proto +++ b/proto/injective/permissions/v1beta1/genesis.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package injective.permissions.v1beta1; import "gogoproto/gogo.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; import "injective/permissions/v1beta1/params.proto"; import "injective/permissions/v1beta1/permissions.proto"; @@ -14,5 +15,6 @@ message GenesisState { // namespaces defines the namespaces of the module repeated Namespace namespaces = 2 [ (gogoproto.nullable) = false ]; // vouchers defines the vouchers of the module - repeated AddressVoucher vouchers = 3; + repeated injective.common.vouchers.v1.AddressVoucher vouchers = 3 + [ (gogoproto.nullable) = false ]; } \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/params.proto b/proto/injective/permissions/v1beta1/params.proto index f711019e..4d721465 100644 --- a/proto/injective/permissions/v1beta1/params.proto +++ b/proto/injective/permissions/v1beta1/params.proto @@ -8,6 +8,24 @@ import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types"; +// EnforcedRestrictionsContract defines an EVM contract with its pause, +// blacklist and unblacklist event signatures +message EnforcedRestrictionsEVMContract { + option (gogoproto.equal) = true; + // EVM address of the contract + string contract_address = 1 + [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + // Pause event signature for the contract (e.g. "Pause()") + string pause_event_signature = 2; + // Unpause event signature for the contract (e.g. "Unpause()") + string unpause_event_signature = 3; + // Blacklist event signature for the contract (e.g. Blacklisted(address)") + string blacklist_event_signature = 4; + // UnBlacklist event signature for the contract (e.g. + // "UnBlacklisted(address)") + string unblacklist_event_signature = 5; +} + // Params defines the parameters for the permissions module. message Params { option (gogoproto.equal) = true; @@ -15,6 +33,14 @@ message Params { // Max amount of gas allowed for contract hook queries uint64 contract_hook_max_gas = 1; + // DEPRECATED in favor of enforced_restrictions_evm_contracts, but left + // for compatibility and upgrade purposes + // // EVM addresses of contracts that will not bypass module-to-module transfers - repeated string enforced_restrictions_contracts = 2; + repeated string deprecated_enforced_restrictions_contracts = 2; + + // EVM Contracts that module will be listening to sync permissions stored + // inside namespace on every update inside smart contract state + repeated EnforcedRestrictionsEVMContract enforced_restrictions_evm_contracts = + 3 [ (gogoproto.nullable) = false ]; } diff --git a/proto/injective/permissions/v1beta1/permissions.proto b/proto/injective/permissions/v1beta1/permissions.proto index 9e172c8e..37511f87 100644 --- a/proto/injective/permissions/v1beta1/permissions.proto +++ b/proto/injective/permissions/v1beta1/permissions.proto @@ -3,6 +3,7 @@ package injective.permissions.v1beta1; import "cosmos/base/v1beta1/coin.proto"; import "gogoproto/gogo.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types"; @@ -116,15 +117,3 @@ message PolicyManagerCapability { // used in storage message RoleIDs { repeated uint32 role_ids = 1; } - -// AddressVoucher is used to represent a voucher for a specific address -message AddressVoucher { - // The Injective address that the voucher is for - string address = 1; - // The voucher amount - cosmos.base.v1beta1.Coin voucher = 2 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", - (gogoproto.jsontag) = "voucher,omitempty" - ]; -} diff --git a/proto/injective/permissions/v1beta1/query.proto b/proto/injective/permissions/v1beta1/query.proto index f07584c8..73508cb4 100644 --- a/proto/injective/permissions/v1beta1/query.proto +++ b/proto/injective/permissions/v1beta1/query.proto @@ -5,6 +5,7 @@ import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; +import "injective/common/vouchers/v1/vouchers.proto"; import "injective/permissions/v1beta1/params.proto"; import "injective/permissions/v1beta1/genesis.proto"; import "injective/permissions/v1beta1/permissions.proto"; @@ -89,15 +90,13 @@ service Query { // Vouchers defines a gRPC query method for the vouchers for a given denom rpc Vouchers(QueryVouchersRequest) returns (QueryVouchersResponse) { - option (google.api.http).get = - "/injective/permissions/v1beta1/vouchers/{denom}"; + option (google.api.http).get = "/injective/permissions/v1beta1/vouchers"; } // Voucher defines a gRPC query method for the vouchers for a given denom and // address rpc Voucher(QueryVoucherRequest) returns (QueryVoucherResponse) { - option (google.api.http).get = - "/injective/permissions/v1beta1/voucher/{denom}/{address}"; + option (google.api.http).get = "/injective/permissions/v1beta1/voucher"; } // Retrieves the entire permissions module's state @@ -249,8 +248,9 @@ message QueryVouchersRequest { } message QueryVouchersResponse { - // List of vouchers - repeated AddressVoucher vouchers = 1; + // List of outstanding vouchers matching the request filter. + repeated injective.common.vouchers.v1.AddressVoucher vouchers = 1 + [ (gogoproto.nullable) = false ]; } message QueryVoucherRequest { @@ -264,8 +264,7 @@ message QueryVoucherResponse { // The voucher amount cosmos.base.v1beta1.Coin voucher = 1 [ (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", - (gogoproto.jsontag) = "voucher,omitempty" + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin" ]; } diff --git a/proto/injective/txfees/v1beta1/tx.proto b/proto/injective/txfees/v1beta1/tx.proto index 873e8ab9..34f5f9d3 100644 --- a/proto/injective/txfees/v1beta1/tx.proto +++ b/proto/injective/txfees/v1beta1/tx.proto @@ -8,6 +8,7 @@ import "injective/txfees/v1beta1/txfees.proto"; import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types"; +option (gogoproto.goproto_registration) = true; // Msg defines the auction Msg service. service Msg { diff --git a/proto/injective/txfees/v1beta1/txfees.proto b/proto/injective/txfees/v1beta1/txfees.proto index 07b857c0..ccfb31ee 100644 --- a/proto/injective/txfees/v1beta1/txfees.proto +++ b/proto/injective/txfees/v1beta1/txfees.proto @@ -4,6 +4,7 @@ package injective.txfees.v1beta1; import "amino/amino.proto"; import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; +import "cosmos_proto/cosmos.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/txfees/types"; option (gogoproto.goproto_registration) = true; @@ -17,6 +18,7 @@ message Params { uint64 high_gas_tx_threshold = 2 [ (gogoproto.moretags) = "yaml:\"high_gas_tx_threshold\"" ]; string min_gas_price_for_high_gas_tx = 3 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"min_gas_price_for_high_gas_tx\"" @@ -24,42 +26,50 @@ message Params { bool mempool1559_enabled = 4 [ (gogoproto.moretags) = "yaml:\"mempool1559_enabled\"" ]; string min_gas_price = 5 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"min_gas_price\"" ]; string default_base_fee_multiplier = 6 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"default_base_fee_multiplier\"" ]; string max_base_fee_multiplier = 7 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"max_base_fee_multiplier\"" ]; int64 reset_interval = 8 [ (gogoproto.moretags) = "yaml:\"reset_interval\"" ]; string max_block_change_rate = 9 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"max_block_change_rate\"" ]; string target_block_space_percent_rate = 10 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"target_block_space_percent_rate\"" ]; string recheck_fee_low_base_fee = 11 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"recheck_fee_low_base_fee\"" ]; string recheck_fee_high_base_fee = 12 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"recheck_fee_high_base_fee\"" ]; string recheck_fee_base_fee_threshold_multiplier = 13 [ + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"recheck_fee_base_fee_threshold_multiplier\"" diff --git a/proto/injective/wasmx/v1/tx.proto b/proto/injective/wasmx/v1/tx.proto index ac19a6f1..3436543d 100644 --- a/proto/injective/wasmx/v1/tx.proto +++ b/proto/injective/wasmx/v1/tx.proto @@ -10,6 +10,7 @@ import "injective/wasmx/v1/proposal.proto"; import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types"; +option (gogoproto.goproto_registration) = true; // Msg defines the wasmx Msg service. service Msg {